summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDavid 'Digit' Turner <digit@google.com>2009-06-08 15:18:21 +0200
committerDavid 'Digit' Turner <digit@google.com>2009-06-08 15:18:21 +0200
commit77f63d23f7d380b0ff02c18fd6a154ab9063128a (patch)
tree14b8437e23a816c57512fe472fdef4c7875c2eba /include
parentd04869994887b14ee43c9f8a9a8597193b5a7107 (diff)
downloadandroid_external_freetype-77f63d23f7d380b0ff02c18fd6a154ab9063128a.tar.gz
android_external_freetype-77f63d23f7d380b0ff02c18fd6a154ab9063128a.tar.bz2
android_external_freetype-77f63d23f7d380b0ff02c18fd6a154ab9063128a.zip
Integrate FreeType 2.3.9 into the donut tree.
This is done to get fixes for a few security-related issues. NOTE: the auto-hinter hasn't been changed to avoid modifying the rendering of characters. The 2.3.9 code contains minor fixes (not security-related) that could in theory do that (though extensive testing is needed to evaluate its real impact on Android).
Diffstat (limited to 'include')
-rw-r--r--include/freetype/config/ftconfig.h169
-rw-r--r--include/freetype/config/ftheader.h77
-rw-r--r--include/freetype/config/ftmodule.h20
-rw-r--r--include/freetype/config/ftoption.h46
-rw-r--r--include/freetype/config/ftstdlib.h10
-rw-r--r--include/freetype/freetype.h696
-rw-r--r--include/freetype/ftadvanc.h136
-rw-r--r--include/freetype/ftbbox.h4
-rw-r--r--include/freetype/ftbdf.h89
-rw-r--r--include/freetype/ftbitmap.h41
-rw-r--r--include/freetype/ftcache.h76
-rw-r--r--include/freetype/ftchapters.h1
-rw-r--r--include/freetype/ftcid.h76
-rw-r--r--include/freetype/ftgasp.h11
-rw-r--r--include/freetype/ftglyph.h82
-rw-r--r--include/freetype/ftgxval.h10
-rw-r--r--include/freetype/ftgzip.h2
-rw-r--r--include/freetype/ftimage.h190
-rw-r--r--include/freetype/ftincrem.h8
-rw-r--r--include/freetype/ftlcdfil.h12
-rw-r--r--include/freetype/ftlist.h14
-rw-r--r--include/freetype/ftlzw.h2
-rw-r--r--include/freetype/ftmac.h16
-rw-r--r--include/freetype/ftmm.h28
-rw-r--r--include/freetype/ftmodapi.h26
-rw-r--r--include/freetype/ftotval.h2
-rw-r--r--include/freetype/ftoutln.h70
-rw-r--r--include/freetype/ftpfr.h16
-rw-r--r--include/freetype/ftrender.h8
-rw-r--r--include/freetype/ftsizes.h12
-rw-r--r--include/freetype/ftsnames.h8
-rw-r--r--include/freetype/ftstroke.h58
-rw-r--r--include/freetype/ftsynth.h27
-rw-r--r--include/freetype/ftsystem.h8
-rw-r--r--include/freetype/fttypes.h18
-rw-r--r--include/freetype/ftwinfnt.h6
-rw-r--r--include/freetype/ftxf86.h4
-rw-r--r--include/freetype/internal/ftdebug.h8
-rw-r--r--include/freetype/internal/ftdriver.h5
-rw-r--r--include/freetype/internal/ftgloadr.h8
-rw-r--r--include/freetype/internal/ftobjs.h1
-rw-r--r--include/freetype/internal/psaux.h9
-rw-r--r--include/freetype/internal/services/svcid.h11
-rw-r--r--include/freetype/internal/services/svpsinfo.h7
-rw-r--r--include/freetype/internal/services/svttcmap.h9
-rw-r--r--include/freetype/internal/t1types.h24
-rw-r--r--include/freetype/t1tables.h36
-rw-r--r--include/freetype/ttnameid.h273
-rw-r--r--include/freetype/tttables.h36
-rw-r--r--include/freetype/tttags.h9
50 files changed, 1532 insertions, 983 deletions
diff --git a/include/freetype/config/ftconfig.h b/include/freetype/config/ftconfig.h
index 8336be5..3c0b8b1 100644
--- a/include/freetype/config/ftconfig.h
+++ b/include/freetype/config/ftconfig.h
@@ -4,7 +4,7 @@
/* */
/* ANSI-specific configuration file (specification only). */
/* */
-/* Copyright 1996-2001, 2002, 2003, 2004, 2006, 2007 by */
+/* Copyright 1996-2001, 2002, 2003, 2004, 2006, 2007, 2008 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -43,8 +43,10 @@
#include FT_CONFIG_OPTIONS_H
#include FT_CONFIG_STANDARD_LIBRARY_H
+
FT_BEGIN_HEADER
+
/*************************************************************************/
/* */
/* PLATFORM-SPECIFIC CONFIGURATION MACROS */
@@ -133,6 +135,14 @@ FT_BEGIN_HEADER
#else
#define FT_MACINTOSH 1
#endif
+
+#elif defined( __SC__ ) || defined( __MRC__ )
+ /* Classic MacOS compilers */
+#include "ConditionalMacros.h"
+#if TARGET_OS_MAC
+#define FT_MACINTOSH 1
+#endif
+
#endif
@@ -164,6 +174,7 @@ FT_BEGIN_HEADER
/* A typedef for a 16bit unsigned integer type. */
/* */
typedef unsigned short FT_UInt16;
+
/* */
@@ -210,6 +221,7 @@ FT_BEGIN_HEADER
#error "no 32bit type found -- please check your configuration files"
#endif
+
/* look up an integer type that is at least 32 bits */
#if FT_SIZEOF_INT >= (32 / FT_CHAR_BIT)
@@ -223,68 +235,6 @@ FT_BEGIN_HEADER
#endif
-#if !defined(FT_CONFIG_OPTION_NO_ASSEMBLER)
-/* provide assembler fragments for performance-critical
- * functions. these must be defined static __inline__
- * with GCC
- */
-#if defined(__GNUC__)
-
-# if defined(__arm__) && !defined(__thumb__)
-# define FT_MULFIX_ASSEMBLER FT_MulFix_arm
- static __inline__ FT_Int32
- FT_MulFix_arm( FT_Int32 a, FT_Int32 b )
- {
- register FT_Int32 t, t2;
- asm __volatile__ (
- "smull %1, %2, %4, %3\n\t" /* (lo=%1,hi=%2) = a*b */
- "mov %0, %2, asr #31\n\t" /* %0 = (hi >> 31) */
- "add %0, %0, #0x8000\n\t" /* %0 += 0x8000 */
- "adds %1, %1, %0\n\t" /* %1 += %0 */
- "adc %2, %2, #0\n\t" /* %2 += carry */
- "mov %0, %1, lsr #16\n\t" /* %0 = %1 >> 16 */
- "orr %0, %2, lsl #16\n\t" /* %0 |= %2 << 16 */
- : "=r"(a), "=&r"(t2), "=&r"(t)
- : "r"(a), "r"(b)
- );
- return a;
- }
-# endif
-
-# if defined(i386)
-# define FT__MULFIX_ASSEMBLER FT_MulFix_i386
- static __inline__ FT_Int32
- FT_MulFix_i386( FT_Int32 a, FT_Int32 b )
- {
- register FT_Int32 result;
-
- __asm__ __volatile__ (
- "imul %%edx\n"
- "movl %%edx, %%ecx\n"
- "sarl $31, %%ecx\n"
- "addl $0x8000, %%ecx\n"
- "addl %%ecx, %%eax\n"
- "adcl $0, %%edx\n"
- "shrl $16, %%eax\n"
- "shll $16, %%edx\n"
- "addl %%edx, %%eax\n"
- : "=a"(result)
- : "a"(a), "d"(b)
- : "%ecx"
- );
- return result;
- }
-# endif
-
-#endif /* __GNUC__ */
-#endif /* !NO_ASSEMBLER */
-
-#ifdef FT_CONFIG_OPTION_INLINE_MULFIX
-# ifdef FT_MULFIX_ASSEMBLER
-# define FT_MULFIX_INLINED FT_MULFIX_ASSEMBLER
-# endif
-#endif
-
/* determine whether we have a 64-bit int type for platforms without */
/* Autoconf */
@@ -327,17 +277,12 @@ FT_BEGIN_HEADER
#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */
-#define FT_BEGIN_STMNT do {
-#define FT_END_STMNT } while ( 0 )
-#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT
-
-
/*************************************************************************/
/* */
/* A 64-bit data type will create compilation problems if you compile */
- /* in strict ANSI mode. To avoid them, we disable their use if */
- /* __STDC__ is defined. You can however ignore this rule by */
- /* defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */
+ /* in strict ANSI mode. To avoid them, we disable its use if __STDC__ */
+ /* is defined. You can however ignore this rule by defining the */
+ /* FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */
/* */
#if defined( FT_LONG64 ) && !defined( FT_CONFIG_OPTION_FORCE_INT64 )
@@ -352,6 +297,86 @@ FT_BEGIN_HEADER
#endif /* FT_LONG64 && !FT_CONFIG_OPTION_FORCE_INT64 */
+#define FT_BEGIN_STMNT do {
+#define FT_END_STMNT } while ( 0 )
+#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT
+
+
+#ifndef FT_CONFIG_OPTION_NO_ASSEMBLER
+ /* Provide assembler fragments for performance-critical functions. */
+ /* These must be defined `static __inline__' with GCC. */
+
+#ifdef __GNUC__
+
+#if defined( __arm__ ) && !defined( __thumb__ )
+#define FT_MULFIX_ASSEMBLER FT_MulFix_arm
+
+ /* documentation is in freetype.h */
+
+ static __inline__ FT_Int32
+ FT_MulFix_arm( FT_Int32 a,
+ FT_Int32 b )
+ {
+ register FT_Int32 t, t2;
+
+
+ asm __volatile__ (
+ "smull %1, %2, %4, %3\n\t" /* (lo=%1,hi=%2) = a*b */
+ "mov %0, %2, asr #31\n\t" /* %0 = (hi >> 31) */
+ "add %0, %0, #0x8000\n\t" /* %0 += 0x8000 */
+ "adds %1, %1, %0\n\t" /* %1 += %0 */
+ "adc %2, %2, #0\n\t" /* %2 += carry */
+ "mov %0, %1, lsr #16\n\t" /* %0 = %1 >> 16 */
+ "orr %0, %2, lsl #16\n\t" /* %0 |= %2 << 16 */
+ : "=r"(a), "=&r"(t2), "=&r"(t)
+ : "r"(a), "r"(b) );
+ return a;
+ }
+
+#endif /* __arm__ && !__thumb__ */
+
+#if defined( i386 )
+#define FT_MULFIX_ASSEMBLER FT_MulFix_i386
+
+ /* documentation is in freetype.h */
+
+ static __inline__ FT_Int32
+ FT_MulFix_i386( FT_Int32 a,
+ FT_Int32 b )
+ {
+ register FT_Int32 result;
+
+
+ __asm__ __volatile__ (
+ "imul %%edx\n"
+ "movl %%edx, %%ecx\n"
+ "sarl $31, %%ecx\n"
+ "addl $0x8000, %%ecx\n"
+ "addl %%ecx, %%eax\n"
+ "adcl $0, %%edx\n"
+ "shrl $16, %%eax\n"
+ "shll $16, %%edx\n"
+ "addl %%edx, %%eax\n"
+ : "=a"(result), "=d"(b)
+ : "a"(a), "d"(b)
+ : "%ecx", "cc" );
+ return result;
+ }
+
+#endif /* i386 */
+
+#endif /* __GNUC__ */
+
+#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */
+
+
+#ifdef FT_CONFIG_OPTION_INLINE_MULFIX
+#ifdef FT_MULFIX_ASSEMBLER
+#define FT_MULFIX_INLINED FT_MULFIX_ASSEMBLER
+#endif
+#endif
+
+
#ifdef FT_MAKE_OPTION_SINGLE_OBJECT
#define FT_LOCAL( x ) static x
@@ -384,7 +409,7 @@ FT_BEGIN_HEADER
#ifndef FT_BASE_DEF
#ifdef __cplusplus
-#define FT_BASE_DEF( x ) extern "C" x
+#define FT_BASE_DEF( x ) x
#else
#define FT_BASE_DEF( x ) x
#endif
diff --git a/include/freetype/config/ftheader.h b/include/freetype/config/ftheader.h
index 0279a3f..b63945d 100644
--- a/include/freetype/config/ftheader.h
+++ b/include/freetype/config/ftheader.h
@@ -74,7 +74,7 @@
/* */
/* <Description> */
/* The following macros are defined to the name of specific */
- /* FreeType 2 header files. They can be used directly in #include */
+ /* FreeType~2 header files. They can be used directly in #include */
/* statements as in: */
/* */
/* { */
@@ -85,11 +85,11 @@
/* */
/* There are several reasons why we are now using macros to name */
/* public header files. The first one is that such macros are not */
- /* limited to the infamous 8.3 naming rule required by DOS (and */
+ /* limited to the infamous 8.3~naming rule required by DOS (and */
/* `FT_MULTIPLE_MASTERS_H' is a lot more meaningful than `ftmm.h'). */
/* */
/* The second reason is that it allows for more flexibility in the */
- /* way FreeType 2 is installed on a given system. */
+ /* way FreeType~2 is installed on a given system. */
/* */
/*************************************************************************/
@@ -103,7 +103,7 @@
*
* @description:
* A macro used in #include statements to name the file containing
- * FreeType 2 configuration data.
+ * FreeType~2 configuration data.
*
*/
#ifndef FT_CONFIG_CONFIG_H
@@ -118,7 +118,7 @@
*
* @description:
* A macro used in #include statements to name the file containing
- * FreeType 2 interface to the standard C library functions.
+ * FreeType~2 interface to the standard C library functions.
*
*/
#ifndef FT_CONFIG_STANDARD_LIBRARY_H
@@ -133,7 +133,7 @@
*
* @description:
* A macro used in #include statements to name the file containing
- * FreeType 2 project-specific configuration options.
+ * FreeType~2 project-specific configuration options.
*
*/
#ifndef FT_CONFIG_OPTIONS_H
@@ -148,7 +148,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * list of FreeType 2 modules that are statically linked to new library
+ * list of FreeType~2 modules that are statically linked to new library
* instances in @FT_Init_FreeType.
*
*/
@@ -167,7 +167,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * base FreeType 2 API.
+ * base FreeType~2 API.
*
*/
#define FT_FREETYPE_H <freetype/freetype.h>
@@ -180,7 +180,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * list of FreeType 2 error codes (and messages).
+ * list of FreeType~2 error codes (and messages).
*
* It is included by @FT_FREETYPE_H.
*
@@ -195,7 +195,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * list of FreeType 2 module error offsets (and messages).
+ * list of FreeType~2 module error offsets (and messages).
*
*/
#define FT_MODULE_ERRORS_H <freetype/ftmoderr.h>
@@ -208,7 +208,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * FreeType 2 interface to low-level operations (i.e., memory management
+ * FreeType~2 interface to low-level operations (i.e., memory management
* and stream i/o).
*
* It is included by @FT_FREETYPE_H.
@@ -240,7 +240,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * basic data types defined by FreeType 2.
+ * basic data types defined by FreeType~2.
*
* It is included by @FT_FREETYPE_H.
*
@@ -255,7 +255,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * list management API of FreeType 2.
+ * list management API of FreeType~2.
*
* (Most applications will never need to include this file.)
*
@@ -270,7 +270,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * scalable outline management API of FreeType 2.
+ * scalable outline management API of FreeType~2.
*
*/
#define FT_OUTLINE_H <freetype/ftoutln.h>
@@ -296,7 +296,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * module management API of FreeType 2.
+ * module management API of FreeType~2.
*
*/
#define FT_MODULE_H <freetype/ftmodapi.h>
@@ -309,7 +309,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * renderer module management API of FreeType 2.
+ * renderer module management API of FreeType~2.
*
*/
#define FT_RENDER_H <freetype/ftrender.h>
@@ -322,7 +322,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * types and API specific to the Type 1 format.
+ * types and API specific to the Type~1 format.
*
*/
#define FT_TYPE1_TABLES_H <freetype/t1tables.h>
@@ -382,6 +382,8 @@
*
*/
#define FT_BDF_H <freetype/ftbdf.h>
+
+
/*************************************************************************
*
* @macro:
@@ -481,7 +483,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * API of the optional FreeType 2 cache sub-system.
+ * API of the optional FreeType~2 cache sub-system.
*
*/
#define FT_CACHE_H <freetype/ftcache.h>
@@ -494,7 +496,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * `glyph image' API of the FreeType 2 cache sub-system.
+ * `glyph image' API of the FreeType~2 cache sub-system.
*
* It is used to define a cache for @FT_Glyph elements. You can also
* use the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need to
@@ -514,7 +516,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * `small bitmaps' API of the FreeType 2 cache sub-system.
+ * `small bitmaps' API of the FreeType~2 cache sub-system.
*
* It is used to define a cache for small glyph bitmaps in a relatively
* memory-efficient way. You can also use the API defined in
@@ -535,7 +537,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * `charmap' API of the FreeType 2 cache sub-system.
+ * `charmap' API of the FreeType~2 cache sub-system.
*
* This macro is deprecated. Simply include @FT_CACHE_H to have all
* charmap-based cache declarations.
@@ -551,7 +553,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * Macintosh-specific FreeType 2 API. The latter is used to access
+ * Macintosh-specific FreeType~2 API. The latter is used to access
* fonts embedded in resource forks.
*
* This header file must be explicitly included by client applications
@@ -568,7 +570,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * optional multiple-masters management API of FreeType 2.
+ * optional multiple-masters management API of FreeType~2.
*
*/
#define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h>
@@ -581,7 +583,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * optional FreeType 2 API which accesses embedded `name' strings in
+ * optional FreeType~2 API which accesses embedded `name' strings in
* SFNT-based font formats (i.e., TrueType and OpenType).
*
*/
@@ -595,7 +597,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * optional FreeType 2 API which validates OpenType tables (BASE, GDEF,
+ * optional FreeType~2 API which validates OpenType tables (BASE, GDEF,
* GPOS, GSUB, JSTF).
*
*/
@@ -609,7 +611,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * optional FreeType 2 API which validates TrueTypeGX/AAT tables (feat,
+ * optional FreeType~2 API which validates TrueTypeGX/AAT tables (feat,
* mort, morx, bsln, just, kern, opbd, trak, prop).
*
*/
@@ -623,7 +625,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * FreeType 2 API which accesses PFR-specific data.
+ * FreeType~2 API which accesses PFR-specific data.
*
*/
#define FT_PFR_H <freetype/ftpfr.h>
@@ -636,7 +638,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * FreeType 2 API which provides functions to stroke outline paths.
+ * FreeType~2 API which provides functions to stroke outline paths.
*/
#define FT_STROKER_H <freetype/ftstroke.h>
@@ -648,7 +650,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * FreeType 2 API which performs artificial obliquing and emboldening.
+ * FreeType~2 API which performs artificial obliquing and emboldening.
*/
#define FT_SYNTHESIS_H <freetype/ftsynth.h>
@@ -660,7 +662,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * FreeType 2 API which provides functions specific to the XFree86 and
+ * FreeType~2 API which provides functions specific to the XFree86 and
* X.Org X11 servers.
*/
#define FT_XFREE86_H <freetype/ftxf86.h>
@@ -673,7 +675,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * FreeType 2 API which performs trigonometric computations (e.g.,
+ * FreeType~2 API which performs trigonometric computations (e.g.,
* cosines and arc tangents).
*/
#define FT_TRIGONOMETRY_H <freetype/fttrigon.h>
@@ -686,7 +688,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * FreeType 2 API which performs color filtering for subpixel rendering.
+ * FreeType~2 API which performs color filtering for subpixel rendering.
*/
#define FT_LCD_FILTER_H <freetype/ftlcdfil.h>
@@ -698,7 +700,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * FreeType 2 API which performs color filtering for subpixel rendering.
+ * FreeType~2 API which performs color filtering for subpixel rendering.
*/
#define FT_UNPATENTED_HINTING_H <freetype/ttunpat.h>
@@ -710,7 +712,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * FreeType 2 API which performs color filtering for subpixel rendering.
+ * FreeType~2 API which performs color filtering for subpixel rendering.
*/
#define FT_INCREMENTAL_H <freetype/ftincrem.h>
@@ -722,7 +724,7 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * FreeType 2 API which returns entries from the TrueType GASP table.
+ * FreeType~2 API which returns entries from the TrueType GASP table.
*/
#define FT_GASP_H <freetype/ftgasp.h>
@@ -734,9 +736,10 @@
*
* @description:
* A macro used in #include statements to name the file containing the
- * FreeType 2 API which returns individual and ranged glyph advances
+ * FreeType~2 API which returns individual and ranged glyph advances.
*/
-#define FT_ADVANCES_H <freetype/ftadvanc.h>
+#define FT_ADVANCES_H <freetype/ftadvanc.h>
+
/* */
diff --git a/include/freetype/config/ftmodule.h b/include/freetype/config/ftmodule.h
index 4b629bb..e145790 100644
--- a/include/freetype/config/ftmodule.h
+++ b/include/freetype/config/ftmodule.h
@@ -10,15 +10,15 @@
*
*/
-FT_USE_MODULE(autofit_module_class)
-FT_USE_MODULE(tt_driver_class)
-FT_USE_MODULE(cff_driver_class)
-FT_USE_MODULE(psnames_module_class)
-FT_USE_MODULE(pshinter_module_class)
-FT_USE_MODULE(ft_raster1_renderer_class)
-FT_USE_MODULE(sfnt_module_class)
-FT_USE_MODULE(ft_smooth_renderer_class)
-FT_USE_MODULE(ft_smooth_lcd_renderer_class)
-FT_USE_MODULE(ft_smooth_lcdv_renderer_class)
+FT_USE_MODULE( FT_Module_Class, autofit_module_class )
+FT_USE_MODULE( FT_Driver_ClassRec, tt_driver_class )
+FT_USE_MODULE( FT_Driver_ClassRec, cff_driver_class )
+FT_USE_MODULE( FT_Module_Class, psnames_module_class )
+FT_USE_MODULE( FT_Module_Class, pshinter_module_class )
+FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class )
+FT_USE_MODULE( FT_Module_Class, sfnt_module_class )
+FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class )
+FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcd_renderer_class )
+FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcdv_renderer_class )
/* EOF */
diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h
index a92e19b..597a2bb 100644
--- a/include/freetype/config/ftoption.h
+++ b/include/freetype/config/ftoption.h
@@ -112,25 +112,26 @@ FT_BEGIN_HEADER
/* file `ftconfig.h' either statically or through the */
/* `configure' script on supported platforms. */
/* */
-#undef FT_CONFIG_OPTION_FORCE_INT64
+#undef FT_CONFIG_OPTION_FORCE_INT64
/*************************************************************************/
/* */
- /* When this macro is defined, do not try to use an assembler version */
- /* of performance-critical functions (e.g. FT_MulFix). you should only */
- /* do that to verify that the assembler function works properly, or even */
- /* to benchmarks the various implementations... */
+ /* If this macro is defined, do not try to use an assembler version of */
+ /* performance-critical functions (e.g. FT_MulFix). You should only do */
+ /* that to verify that the assembler function works properly, or to */
+ /* execute benchmark tests of the various implementations. */
/* #define FT_CONFIG_OPTION_NO_ASSEMBLER */
+
/*************************************************************************/
/* */
- /* When this macro is defined, try to use an inlined assembler version */
- /* of the FT_MulFix function, which appears to be a hotspot when loading */
- /* and hinting glyphs. */
+ /* If this macro is defined, try to use an inlined assembler version of */
+ /* the `FT_MulFix' function, which is a `hotspot' when loading and */
+ /* hinting glyphs, and which should be executed as fast as possible. */
/* */
- /* note that if your compiler/cpu isn't supported, this will default to */
- /* the standard and portable implementation found in src/base/ftcalc.c */
+ /* Note that if your compiler or CPU is not supported, this will default */
+ /* to the standard and portable implementation found in `ftcalc.c'. */
/* */
#define FT_CONFIG_OPTION_INLINE_MULFIX
@@ -183,7 +184,7 @@ FT_BEGIN_HEADER
/* Do not #undef this macro here since the build system might define */
/* it for certain configurations only. */
/* */
-/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */
+/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */
/*************************************************************************/
@@ -224,27 +225,27 @@ FT_BEGIN_HEADER
/* Do not #undef these macros here since the build system might define */
/* them for certain configurations only. */
/* */
-/* #define FT_EXPORT(x) extern x */
-/* #define FT_EXPORT_DEF(x) x */
+/* #define FT_EXPORT(x) extern x */
+/* #define FT_EXPORT_DEF(x) x */
/*************************************************************************/
/* */
/* Glyph Postscript Names handling */
/* */
- /* By default, FreeType 2 is compiled with the `PSNames' module. This */
+ /* By default, FreeType 2 is compiled with the `psnames' module. This */
/* module is in charge of converting a glyph name string into a */
/* Unicode value, or return a Macintosh standard glyph name for the */
/* use with the TrueType `post' table. */
/* */
- /* Undefine this macro if you do not want `PSNames' compiled in your */
+ /* Undefine this macro if you do not want `psnames' compiled in your */
/* build of FreeType. This has the following effects: */
/* */
/* - The TrueType driver will provide its own set of glyph names, */
/* if you build it to support postscript names in the TrueType */
/* `post' table. */
/* */
- /* - The Type 1 driver will not be able to synthetize a Unicode */
+ /* - The Type 1 driver will not be able to synthesize a Unicode */
/* charmap out of the glyphs found in the fonts. */
/* */
/* You would normally undefine this configuration macro when building */
@@ -260,12 +261,12 @@ FT_BEGIN_HEADER
/* By default, FreeType 2 is built with the `PSNames' module compiled */
/* in. Among other things, the module is used to convert a glyph name */
/* into a Unicode value. This is especially useful in order to */
- /* synthetize on the fly a Unicode charmap from the CFF/Type 1 driver */
+ /* synthesize on the fly a Unicode charmap from the CFF/Type 1 driver */
/* through a big table named the `Adobe Glyph List' (AGL). */
/* */
/* Undefine this macro if you do not want the Adobe Glyph List */
/* compiled in your `PSNames' module. The Type 1 driver will not be */
- /* able to synthetize a Unicode charmap out of the glyphs found in the */
+ /* able to synthesize a Unicode charmap out of the glyphs found in the */
/* fonts. */
/* */
#define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
@@ -487,9 +488,9 @@ FT_BEGIN_HEADER
/* If you define TT_CONFIG_OPTION_UNPATENTED_HINTING, a special version */
/* of the TrueType bytecode interpreter is used that doesn't implement */
/* any of the patented opcodes and algorithms. Note that the */
- /* the TT_CONFIG_OPTION_UNPATENTED_HINTING macro is *ignored* if you */
- /* define TT_CONFIG_OPTION_BYTECODE_INTERPRETER; with other words, */
- /* either define TT_CONFIG_OPTION_BYTECODE_INTERPRETER or */
+ /* TT_CONFIG_OPTION_UNPATENTED_HINTING macro is *ignored* if you define */
+ /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER; in other words, either define */
+ /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER or */
/* TT_CONFIG_OPTION_UNPATENTED_HINTING but not both at the same time. */
/* */
/* This macro is only useful for a small number of font files (mostly */
@@ -673,11 +674,12 @@ FT_BEGIN_HEADER
/*
- * This variable is defined if either unpatented or native TrueType
+ * This macro is defined if either unpatented or native TrueType
* hinting is requested by the definitions above.
*/
#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
#define TT_USE_BYTECODE_INTERPRETER
+#undef TT_CONFIG_OPTION_UNPATENTED_HINTING
#elif defined TT_CONFIG_OPTION_UNPATENTED_HINTING
#define TT_USE_BYTECODE_INTERPRETER
#endif
diff --git a/include/freetype/config/ftstdlib.h b/include/freetype/config/ftstdlib.h
index f923f3e..ce5557a 100644
--- a/include/freetype/config/ftstdlib.h
+++ b/include/freetype/config/ftstdlib.h
@@ -5,7 +5,7 @@
/* ANSI-specific library and header configuration file (specification */
/* only). */
/* */
-/* Copyright 2002, 2003, 2004, 2005, 2006, 2007 by */
+/* Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2009 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -54,12 +54,6 @@
/* In these case, `ftconfig.h' will refuse to compile anyway with a */
/* message like `couldn't find 32-bit type' or something similar. */
/* */
- /* IMPORTANT NOTE: We do not define aliases for heap management and */
- /* i/o routines (i.e. malloc/free/fopen/fread/...) */
- /* since these functions should all be encapsulated */
- /* by platform-specific implementations of */
- /* `ftsystem.c'. */
- /* */
/**********************************************************************/
@@ -124,8 +118,6 @@
#define ft_qsort qsort
-#define ft_exit exit /* only used to exit from unhandled exceptions */
-
/**********************************************************************/
/* */
diff --git a/include/freetype/freetype.h b/include/freetype/freetype.h
index a569f5d..364388b 100644
--- a/include/freetype/freetype.h
+++ b/include/freetype/freetype.h
@@ -4,7 +4,7 @@
/* */
/* FreeType high-level API and common types (specification only). */
/* */
-/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by */
+/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -25,14 +25,6 @@
#endif
- /*************************************************************************/
- /* */
- /* The `raster' component duplicates some of the declarations in */
- /* freetype.h for stand-alone use if _FREETYPE_ isn't defined. */
- /* */
- /*************************************************************************/
-
-
#ifndef __FREETYPE_H__
#define __FREETYPE_H__
@@ -60,8 +52,8 @@ FT_BEGIN_HEADER
/* */
/* <Description> */
/* FreeType assumes that structures allocated by the user and passed */
- /* as arguments are zeroed out except for the actual data. With */
- /* other words, it is recommended to use `calloc' (or variants of it) */
+ /* as arguments are zeroed out except for the actual data. In other */
+ /* words, it is recommended to use `calloc' (or variants of it) */
/* instead of `malloc' for allocation. */
/* */
/*************************************************************************/
@@ -86,10 +78,10 @@ FT_BEGIN_HEADER
/* Base Interface */
/* */
/* <Abstract> */
- /* The FreeType 2 base font interface. */
+ /* The FreeType~2 base font interface. */
/* */
/* <Description> */
- /* This section describes the public high-level API of FreeType 2. */
+ /* This section describes the public high-level API of FreeType~2. */
/* */
/* <Order> */
/* FT_Library */
@@ -191,6 +183,15 @@ FT_BEGIN_HEADER
/* FT_Set_Charmap */
/* FT_Get_Charmap_Index */
/* */
+ /* FT_FSTYPE_INSTALLABLE_EMBEDDING */
+ /* FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING */
+ /* FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING */
+ /* FT_FSTYPE_EDITABLE_EMBEDDING */
+ /* FT_FSTYPE_NO_SUBSETTING */
+ /* FT_FSTYPE_BITMAP_EMBEDDING_ONLY */
+ /* */
+ /* FT_Get_FSType_Flags */
+ /* */
/*************************************************************************/
@@ -386,8 +387,8 @@ FT_BEGIN_HEADER
/* Use @FT_Done_Face to destroy it (along with its slot and sizes). */
/* */
/* <Also> */
- /* The @FT_FaceRec details the publicly accessible fields of a given */
- /* face object. */
+ /* See @FT_FaceRec for the publicly accessible fields of a given face */
+ /* object. */
/* */
typedef struct FT_FaceRec_* FT_Face;
@@ -416,8 +417,8 @@ FT_BEGIN_HEADER
/* activated at any given time per face. */
/* */
/* <Also> */
- /* The @FT_SizeRec structure details the publicly accessible fields */
- /* of a given size object. */
+ /* See @FT_SizeRec for the publicly accessible fields of a given size */
+ /* object. */
/* */
typedef struct FT_SizeRec_* FT_Size;
@@ -429,7 +430,7 @@ FT_BEGIN_HEADER
/* */
/* <Description> */
/* A handle to a given `glyph slot'. A slot is a container where it */
- /* is possible to load any one of the glyphs contained in its parent */
+ /* is possible to load any of the glyphs contained in its parent */
/* face. */
/* */
/* In other words, each time you call @FT_Load_Glyph or */
@@ -438,7 +439,7 @@ FT_BEGIN_HEADER
/* other control information. */
/* */
/* <Also> */
- /* @FT_GlyphSlotRec details the publicly accessible glyph fields. */
+ /* See @FT_GlyphSlotRec for the publicly accessible glyph fields. */
/* */
typedef struct FT_GlyphSlotRec_* FT_GlyphSlot;
@@ -469,8 +470,8 @@ FT_BEGIN_HEADER
/* the list and automatically activates it. */
/* */
/* <Also> */
- /* The @FT_CharMapRec details the publicly accessible fields of a */
- /* given character map. */
+ /* See @FT_CharMapRec for the publicly accessible fields of a given */
+ /* character map. */
/* */
typedef struct FT_CharMapRec_* FT_CharMap;
@@ -485,7 +486,7 @@ FT_BEGIN_HEADER
/* used to define `encoding' identifiers (see @FT_Encoding). */
/* */
/* <Note> */
- /* Since many 16bit compilers don't like 32bit enumerations, you */
+ /* Since many 16-bit compilers don't like 32-bit enumerations, you */
/* should redefine this macro in case of problems to something like */
/* this: */
/* */
@@ -526,123 +527,123 @@ FT_BEGIN_HEADER
/* Other encodings might be defined in the future. */
/* */
/* <Values> */
- /* FT_ENCODING_NONE :: */
- /* The encoding value 0 is reserved. */
+ /* FT_ENCODING_NONE :: */
+ /* The encoding value~0 is reserved. */
/* */
- /* FT_ENCODING_UNICODE :: */
- /* Corresponds to the Unicode character set. This value covers */
- /* all versions of the Unicode repertoire, including ASCII and */
- /* Latin-1. Most fonts include a Unicode charmap, but not all */
- /* of them. */
+ /* FT_ENCODING_UNICODE :: */
+ /* Corresponds to the Unicode character set. This value covers */
+ /* all versions of the Unicode repertoire, including ASCII and */
+ /* Latin-1. Most fonts include a Unicode charmap, but not all */
+ /* of them. */
/* */
- /* FT_ENCODING_MS_SYMBOL :: */
- /* Corresponds to the Microsoft Symbol encoding, used to encode */
- /* mathematical symbols in the 32..255 character code range. For */
- /* more information, see `http://www.ceviz.net/symbol.htm'. */
+ /* FT_ENCODING_MS_SYMBOL :: */
+ /* Corresponds to the Microsoft Symbol encoding, used to encode */
+ /* mathematical symbols in the 32..255 character code range. For */
+ /* more information, see `http://www.ceviz.net/symbol.htm'. */
/* */
- /* FT_ENCODING_SJIS :: */
- /* Corresponds to Japanese SJIS encoding. More info at */
- /* at `http://langsupport.japanreference.com/encoding.shtml'. */
- /* See note on multi-byte encodings below. */
+ /* FT_ENCODING_SJIS :: */
+ /* Corresponds to Japanese SJIS encoding. More info at */
+ /* at `http://langsupport.japanreference.com/encoding.shtml'. */
+ /* See note on multi-byte encodings below. */
/* */
- /* FT_ENCODING_GB2312 :: */
- /* Corresponds to an encoding system for Simplified Chinese as used */
- /* used in mainland China. */
+ /* FT_ENCODING_GB2312 :: */
+ /* Corresponds to an encoding system for Simplified Chinese as used */
+ /* used in mainland China. */
/* */
- /* FT_ENCODING_BIG5 :: */
- /* Corresponds to an encoding system for Traditional Chinese as used */
- /* in Taiwan and Hong Kong. */
+ /* FT_ENCODING_BIG5 :: */
+ /* Corresponds to an encoding system for Traditional Chinese as */
+ /* used in Taiwan and Hong Kong. */
/* */
- /* FT_ENCODING_WANSUNG :: */
- /* Corresponds to the Korean encoding system known as Wansung. */
- /* For more information see */
- /* `http://www.microsoft.com/typography/unicode/949.txt'. */
+ /* FT_ENCODING_WANSUNG :: */
+ /* Corresponds to the Korean encoding system known as Wansung. */
+ /* For more information see */
+ /* `http://www.microsoft.com/typography/unicode/949.txt'. */
/* */
- /* FT_ENCODING_JOHAB :: */
- /* The Korean standard character set (KS C-5601-1992), which */
- /* corresponds to MS Windows code page 1361. This character set */
- /* includes all possible Hangeul character combinations. */
+ /* FT_ENCODING_JOHAB :: */
+ /* The Korean standard character set (KS~C 5601-1992), which */
+ /* corresponds to MS Windows code page 1361. This character set */
+ /* includes all possible Hangeul character combinations. */
/* */
- /* FT_ENCODING_ADOBE_LATIN_1 :: */
- /* Corresponds to a Latin-1 encoding as defined in a Type 1 */
- /* Postscript font. It is limited to 256 character codes. */
+ /* FT_ENCODING_ADOBE_LATIN_1 :: */
+ /* Corresponds to a Latin-1 encoding as defined in a Type~1 */
+ /* PostScript font. It is limited to 256 character codes. */
/* */
- /* FT_ENCODING_ADOBE_STANDARD :: */
- /* Corresponds to the Adobe Standard encoding, as found in Type 1, */
- /* CFF, and OpenType/CFF fonts. It is limited to 256 character */
- /* codes. */
+ /* FT_ENCODING_ADOBE_STANDARD :: */
+ /* Corresponds to the Adobe Standard encoding, as found in Type~1, */
+ /* CFF, and OpenType/CFF fonts. It is limited to 256 character */
+ /* codes. */
/* */
- /* FT_ENCODING_ADOBE_EXPERT :: */
- /* Corresponds to the Adobe Expert encoding, as found in Type 1, */
- /* CFF, and OpenType/CFF fonts. It is limited to 256 character */
- /* codes. */
+ /* FT_ENCODING_ADOBE_EXPERT :: */
+ /* Corresponds to the Adobe Expert encoding, as found in Type~1, */
+ /* CFF, and OpenType/CFF fonts. It is limited to 256 character */
+ /* codes. */
/* */
- /* FT_ENCODING_ADOBE_CUSTOM :: */
- /* Corresponds to a custom encoding, as found in Type 1, CFF, and */
- /* OpenType/CFF fonts. It is limited to 256 character codes. */
+ /* FT_ENCODING_ADOBE_CUSTOM :: */
+ /* Corresponds to a custom encoding, as found in Type~1, CFF, and */
+ /* OpenType/CFF fonts. It is limited to 256 character codes. */
/* */
- /* FT_ENCODING_APPLE_ROMAN :: */
- /* Corresponds to the 8-bit Apple roman encoding. Many TrueType and */
- /* OpenType fonts contain a charmap for this encoding, since older */
- /* versions of Mac OS are able to use it. */
+ /* FT_ENCODING_APPLE_ROMAN :: */
+ /* Corresponds to the 8-bit Apple roman encoding. Many TrueType */
+ /* and OpenType fonts contain a charmap for this encoding, since */
+ /* older versions of Mac OS are able to use it. */
/* */
- /* FT_ENCODING_OLD_LATIN_2 :: */
- /* This value is deprecated and was never used nor reported by */
- /* FreeType. Don't use or test for it. */
+ /* FT_ENCODING_OLD_LATIN_2 :: */
+ /* This value is deprecated and was never used nor reported by */
+ /* FreeType. Don't use or test for it. */
/* */
- /* FT_ENCODING_MS_SJIS :: */
- /* Same as FT_ENCODING_SJIS. Deprecated. */
+ /* FT_ENCODING_MS_SJIS :: */
+ /* Same as FT_ENCODING_SJIS. Deprecated. */
/* */
- /* FT_ENCODING_MS_GB2312 :: */
- /* Same as FT_ENCODING_GB2312. Deprecated. */
+ /* FT_ENCODING_MS_GB2312 :: */
+ /* Same as FT_ENCODING_GB2312. Deprecated. */
/* */
- /* FT_ENCODING_MS_BIG5 :: */
- /* Same as FT_ENCODING_BIG5. Deprecated. */
+ /* FT_ENCODING_MS_BIG5 :: */
+ /* Same as FT_ENCODING_BIG5. Deprecated. */
/* */
- /* FT_ENCODING_MS_WANSUNG :: */
- /* Same as FT_ENCODING_WANSUNG. Deprecated. */
+ /* FT_ENCODING_MS_WANSUNG :: */
+ /* Same as FT_ENCODING_WANSUNG. Deprecated. */
/* */
- /* FT_ENCODING_MS_JOHAB :: */
- /* Same as FT_ENCODING_JOHAB. Deprecated. */
+ /* FT_ENCODING_MS_JOHAB :: */
+ /* Same as FT_ENCODING_JOHAB. Deprecated. */
/* */
/* <Note> */
- /* By default, FreeType automatically synthetizes a Unicode charmap */
- /* for Postscript fonts, using their glyph names dictionaries. */
- /* However, it also reports the encodings defined explicitly in the */
- /* font file, for the cases when they are needed, with the Adobe */
- /* values as well. */
- /* */
- /* FT_ENCODING_NONE is set by the BDF and PCF drivers if the charmap */
- /* is neither Unicode nor ISO-8859-1 (otherwise it is set to */
- /* FT_ENCODING_UNICODE). Use @FT_Get_BDF_Charset_ID to find out which */
- /* encoding is really present. If, for example, the `cs_registry' */
- /* field is `KOI8' and the `cs_encoding' field is `R', the font is */
- /* encoded in KOI8-R. */
- /* */
- /* FT_ENCODING_NONE is always set (with a single exception) by the */
- /* winfonts driver. Use @FT_Get_WinFNT_Header and examine the */
- /* `charset' field of the @FT_WinFNT_HeaderRec structure to find out */
- /* which encoding is really present. For example, */
- /* @FT_WinFNT_ID_CP1251 (204) means Windows code page 1251 (for */
- /* Russian). */
- /* */
- /* FT_ENCODING_NONE is set if `platform_id' is @TT_PLATFORM_MACINTOSH */
- /* and `encoding_id' is not @TT_MAC_ID_ROMAN (otherwise it is set to */
- /* FT_ENCODING_APPLE_ROMAN). */
- /* */
- /* If `platform_id' is @TT_PLATFORM_MACINTOSH, use the function c */
- /* @FT_Get_CMap_Language_ID to query the Mac language ID which may be */
- /* needed to be able to distinguish Apple encoding variants. See */
- /* */
- /* http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/README.TXT */
- /* */
- /* to get an idea how to do that. Basically, if the language ID is 0, */
- /* don't use it, otherwise subtract 1 from the language ID. Then */
- /* examine `encoding_id'. If, for example, `encoding_id' is */
- /* @TT_MAC_ID_ROMAN and the language ID (minus 1) is */
- /* `TT_MAC_LANGID_GREEK', it is the Greek encoding, not Roman. */
- /* @TT_MAC_ID_ARABIC with `TT_MAC_LANGID_FARSI' means the Farsi */
- /* variant the Arabic encoding. */
+ /* By default, FreeType automatically synthesizes a Unicode charmap */
+ /* for PostScript fonts, using their glyph names dictionaries. */
+ /* However, it also reports the encodings defined explicitly in the */
+ /* font file, for the cases when they are needed, with the Adobe */
+ /* values as well. */
+ /* */
+ /* FT_ENCODING_NONE is set by the BDF and PCF drivers if the charmap */
+ /* is neither Unicode nor ISO-8859-1 (otherwise it is set to */
+ /* FT_ENCODING_UNICODE). Use @FT_Get_BDF_Charset_ID to find out */
+ /* which encoding is really present. If, for example, the */
+ /* `cs_registry' field is `KOI8' and the `cs_encoding' field is `R', */
+ /* the font is encoded in KOI8-R. */
+ /* */
+ /* FT_ENCODING_NONE is always set (with a single exception) by the */
+ /* winfonts driver. Use @FT_Get_WinFNT_Header and examine the */
+ /* `charset' field of the @FT_WinFNT_HeaderRec structure to find out */
+ /* which encoding is really present. For example, */
+ /* @FT_WinFNT_ID_CP1251 (204) means Windows code page 1251 (for */
+ /* Russian). */
+ /* */
+ /* FT_ENCODING_NONE is set if `platform_id' is @TT_PLATFORM_MACINTOSH */
+ /* and `encoding_id' is not @TT_MAC_ID_ROMAN (otherwise it is set to */
+ /* FT_ENCODING_APPLE_ROMAN). */
+ /* */
+ /* If `platform_id' is @TT_PLATFORM_MACINTOSH, use the function */
+ /* @FT_Get_CMap_Language_ID to query the Mac language ID which may */
+ /* be needed to be able to distinguish Apple encoding variants. See */
+ /* */
+ /* http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/README.TXT */
+ /* */
+ /* to get an idea how to do that. Basically, if the language ID */
+ /* is~0, don't use it, otherwise subtract 1 from the language ID. */
+ /* Then examine `encoding_id'. If, for example, `encoding_id' is */
+ /* @TT_MAC_ID_ROMAN and the language ID (minus~1) is */
+ /* `TT_MAC_LANGID_GREEK', it is the Greek encoding, not Roman. */
+ /* @TT_MAC_ID_ARABIC with `TT_MAC_LANGID_FARSI' means the Farsi */
+ /* variant the Arabic encoding. */
/* */
typedef enum FT_Encoding_
{
@@ -753,7 +754,7 @@ FT_BEGIN_HEADER
/* An opaque handle to an `FT_Face_InternalRec' structure, used to */
/* model private data of a given @FT_Face object. */
/* */
- /* This structure might change between releases of FreeType 2 and is */
+ /* This structure might change between releases of FreeType~2 and is */
/* not generally available to client applications. */
/* */
typedef struct FT_Face_InternalRec_* FT_Face_Internal;
@@ -774,7 +775,7 @@ FT_BEGIN_HEADER
/* a font file. */
/* */
/* face_index :: The index of the face in the font file. It */
- /* is set to 0 if there is only one face in */
+ /* is set to~0 if there is only one face in */
/* the font file. */
/* */
/* face_flags :: A set of bit flags that give important */
@@ -790,6 +791,9 @@ FT_BEGIN_HEADER
/* `num_fixed_sizes'), it is set to the number */
/* of outline glyphs. */
/* */
+ /* For CID-keyed fonts, this value gives the */
+ /* highest CID used in the font. */
+ /* */
/* family_name :: The face's family name. This is an ASCII */
/* string, usually in English, which describes */
/* the typeface's family (like `Times New */
@@ -838,9 +842,13 @@ FT_BEGIN_HEADER
/* descender'. Only relevant for scalable */
/* formats. */
/* */
+ /* Note that the bounding box might be off by */
+ /* (at least) one pixel for hinted fonts. See */
+ /* @FT_Size_Metrics for further discussion. */
+ /* */
/* units_per_EM :: The number of font units per EM square for */
/* this face. This is typically 2048 for */
- /* TrueType fonts, and 1000 for Type 1 fonts. */
+ /* TrueType fonts, and 1000 for Type~1 fonts. */
/* Only relevant for scalable formats. */
/* */
/* ascender :: The typographic ascender of the face, */
@@ -876,7 +884,7 @@ FT_BEGIN_HEADER
/* scalable formats. */
/* */
/* underline_position :: The position, in font units, of the */
- /* underline line for this face. It's the */
+ /* underline line for this face. It is the */
/* center of the underlining stem. Only */
/* relevant for scalable formats. */
/* */
@@ -891,8 +899,8 @@ FT_BEGIN_HEADER
/* charmap :: The current active charmap for this face. */
/* */
/* <Note> */
- /* Fields may be changed after a call to @FT_Attach_File or */
- /* @FT_Attach_Stream. */
+ /* Fields may be changed after a call to @FT_Attach_File or */
+ /* @FT_Attach_Stream. */
/* */
typedef struct FT_FaceRec_
{
@@ -1030,6 +1038,27 @@ FT_BEGIN_HEADER
/* exist make FT_Load_Glyph return successfully; in all other cases */
/* you get an `FT_Err_Invalid_Argument' error. */
/* */
+ /* Note that CID-keyed fonts which are in an SFNT wrapper don't */
+ /* have this flag set since the glyphs are accessed in the normal */
+ /* way (using contiguous indices); the `CID-ness' isn't visible to */
+ /* the application. */
+ /* */
+ /* FT_FACE_FLAG_TRICKY :: */
+ /* Set if the font is `tricky', this is, it always needs the */
+ /* font format's native hinting engine to get a reasonable result. */
+ /* A typical example is the Chinese font `mingli.ttf' which uses */
+ /* TrueType bytecode instructions to move and scale all of its */
+ /* subglyphs. */
+ /* */
+ /* It is not possible to autohint such fonts using */
+ /* @FT_LOAD_FORCE_AUTOHINT; it will also ignore */
+ /* @FT_LOAD_NO_HINTING. You have to set both FT_LOAD_NO_HINTING */
+ /* and @FT_LOAD_NO_AUTOHINT to really disable hinting; however, you */
+ /* probably never want this except for demonstration purposes. */
+ /* */
+ /* Currently, there are six TrueType fonts in the list of tricky */
+ /* fonts; they are hard-coded in file `ttobjs.c'. */
+ /* */
#define FT_FACE_FLAG_SCALABLE ( 1L << 0 )
#define FT_FACE_FLAG_FIXED_SIZES ( 1L << 1 )
#define FT_FACE_FLAG_FIXED_WIDTH ( 1L << 2 )
@@ -1043,8 +1072,7 @@ FT_BEGIN_HEADER
#define FT_FACE_FLAG_EXTERNAL_STREAM ( 1L << 10 )
#define FT_FACE_FLAG_HINTER ( 1L << 11 )
#define FT_FACE_FLAG_CID_KEYED ( 1L << 12 )
-
- /* */
+#define FT_FACE_FLAG_TRICKY ( 1L << 13 )
/*************************************************************************
@@ -1099,7 +1127,7 @@ FT_BEGIN_HEADER
*
* @description:
* A macro that returns true whenever a face object contains a scalable
- * font face (true for TrueType, Type 1, Type 42, CID, OpenType/CFF,
+ * font face (true for TrueType, Type~1, Type~42, CID, OpenType/CFF,
* and PFR font formats.
*
*/
@@ -1155,8 +1183,6 @@ FT_BEGIN_HEADER
#define FT_HAS_FIXED_SIZES( face ) \
( face->face_flags & FT_FACE_FLAG_FIXED_SIZES )
- /* */
-
/*************************************************************************
*
@@ -1217,9 +1243,23 @@ FT_BEGIN_HEADER
( face->face_flags & FT_FACE_FLAG_CID_KEYED )
+ /*************************************************************************
+ *
+ * @macro:
+ * FT_IS_TRICKY( face )
+ *
+ * @description:
+ * A macro that returns true whenever a face represents a `tricky' font.
+ * See the discussion of @FT_FACE_FLAG_TRICKY for more details.
+ *
+ */
+#define FT_IS_TRICKY( face ) \
+ ( face->face_flags & FT_FACE_FLAG_TRICKY )
+
+
/*************************************************************************/
/* */
- /* <Constant> */
+ /* <Const> */
/* FT_STYLE_FLAG_XXX */
/* */
/* <Description> */
@@ -1437,7 +1477,7 @@ FT_BEGIN_HEADER
/* Only relevant for outline glyphs. */
/* */
/* advance :: This is the transformed advance width for the */
- /* glyph. */
+ /* glyph (in 26.6 fractional pixel format). */
/* */
/* format :: This field indicates the format of the image */
/* contained in the glyph slot. Typically */
@@ -1461,7 +1501,7 @@ FT_BEGIN_HEADER
/* bitmap_top :: This is the bitmap's top bearing expressed in */
/* integer pixels. Remember that this is the */
/* distance from the baseline to the top-most */
- /* glyph scanline, upwards y-coordinates being */
+ /* glyph scanline, upwards y~coordinates being */
/* *positive*. */
/* */
/* outline :: The outline descriptor for the current glyph */
@@ -1484,7 +1524,7 @@ FT_BEGIN_HEADER
/* */
/* control_data :: Certain font drivers can also return the */
/* control data for a given glyph image (e.g. */
- /* TrueType bytecode, Type 1 charstrings, etc.). */
+ /* TrueType bytecode, Type~1 charstrings, etc.). */
/* This field is a pointer to such data. */
/* */
/* control_len :: This is the length in bytes of the control */
@@ -1506,15 +1546,15 @@ FT_BEGIN_HEADER
/* <Note> */
/* If @FT_Load_Glyph is called with default flags (see */
/* @FT_LOAD_DEFAULT) the glyph image is loaded in the glyph slot in */
- /* its native format (e.g., an outline glyph for TrueType and Type 1 */
+ /* its native format (e.g., an outline glyph for TrueType and Type~1 */
/* formats). */
/* */
/* This image can later be converted into a bitmap by calling */
/* @FT_Render_Glyph. This function finds the current renderer for */
- /* the native image's format then invokes it. */
+ /* the native image's format, then invokes it. */
/* */
/* The renderer is in charge of transforming the native image through */
- /* the slot's face transformation fields, then convert it into a */
+ /* the slot's face transformation fields, then converting it into a */
/* bitmap that is returned in `slot->bitmap'. */
/* */
/* Note that `slot->bitmap_left' and `slot->bitmap_top' are also used */
@@ -1609,7 +1649,7 @@ FT_BEGIN_HEADER
/* alibrary :: A handle to a new library object. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Init_FreeType( FT_Library *alibrary );
@@ -1628,7 +1668,7 @@ FT_BEGIN_HEADER
/* library :: A handle to the target library object. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Done_FreeType( FT_Library library );
@@ -1644,26 +1684,26 @@ FT_BEGIN_HEADER
/* @FT_Open_Args structure. */
/* */
/* <Values> */
- /* FT_OPEN_MEMORY :: This is a memory-based stream. */
+ /* FT_OPEN_MEMORY :: This is a memory-based stream. */
/* */
- /* FT_OPEN_STREAM :: Copy the stream from the `stream' field. */
+ /* FT_OPEN_STREAM :: Copy the stream from the `stream' field. */
/* */
- /* FT_OPEN_PATHNAME :: Create a new input stream from a C */
- /* path name. */
+ /* FT_OPEN_PATHNAME :: Create a new input stream from a C~path */
+ /* name. */
/* */
- /* FT_OPEN_DRIVER :: Use the `driver' field. */
+ /* FT_OPEN_DRIVER :: Use the `driver' field. */
/* */
- /* FT_OPEN_PARAMS :: Use the `num_params' and `params' fields. */
+ /* FT_OPEN_PARAMS :: Use the `num_params' and `params' fields. */
/* */
- /* ft_open_memory :: Deprecated; use @FT_OPEN_MEMORY instead. */
+ /* ft_open_memory :: Deprecated; use @FT_OPEN_MEMORY instead. */
/* */
- /* ft_open_stream :: Deprecated; use @FT_OPEN_STREAM instead. */
+ /* ft_open_stream :: Deprecated; use @FT_OPEN_STREAM instead. */
/* */
- /* ft_open_pathname :: Deprecated; use @FT_OPEN_PATHNAME instead. */
+ /* ft_open_pathname :: Deprecated; use @FT_OPEN_PATHNAME instead. */
/* */
- /* ft_open_driver :: Deprecated; use @FT_OPEN_DRIVER instead. */
+ /* ft_open_driver :: Deprecated; use @FT_OPEN_DRIVER instead. */
/* */
- /* ft_open_params :: Deprecated; use @FT_OPEN_PARAMS instead. */
+ /* ft_open_params :: Deprecated; use @FT_OPEN_PARAMS instead. */
/* */
/* <Note> */
/* The `FT_OPEN_MEMORY', `FT_OPEN_STREAM', and `FT_OPEN_PATHNAME' */
@@ -1688,8 +1728,8 @@ FT_BEGIN_HEADER
/* FT_Parameter */
/* */
/* <Description> */
- /* A simple structure used to pass more or less generic parameters */
- /* to @FT_Open_Face. */
+ /* A simple structure used to pass more or less generic parameters to */
+ /* @FT_Open_Face. */
/* */
/* <Fields> */
/* tag :: A four-byte identification tag. */
@@ -1731,7 +1771,7 @@ FT_BEGIN_HEADER
/* */
/* driver :: This field is exclusively used by @FT_Open_Face; */
/* it simply specifies the font driver to use to open */
- /* the face. If set to 0, FreeType tries to load the */
+ /* the face. If set to~0, FreeType tries to load the */
/* face with each one of the drivers in its list. */
/* */
/* num_params :: The number of extra parameters. */
@@ -1762,7 +1802,7 @@ FT_BEGIN_HEADER
/* `num_params' and `params' is used. They are ignored otherwise. */
/* */
/* Ideally, both the `pathname' and `params' fields should be tagged */
- /* as `const'; this is missing for API backwards compatibility. With */
+ /* as `const'; this is missing for API backwards compatibility. In */
/* other words, applications should treat them as read-only. */
/* */
typedef struct FT_Open_Args_
@@ -1794,7 +1834,7 @@ FT_BEGIN_HEADER
/* pathname :: A path to the font file. */
/* */
/* face_index :: The index of the face within the font. The first */
- /* face has index 0. */
+ /* face has index~0. */
/* */
/* <Output> */
/* aface :: A handle to a new face object. If `face_index' is */
@@ -1802,7 +1842,7 @@ FT_BEGIN_HEADER
/* See @FT_Open_Face for more details. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_New_Face( FT_Library library,
@@ -1829,7 +1869,7 @@ FT_BEGIN_HEADER
/* file_size :: The size of the memory chunk used by the font data. */
/* */
/* face_index :: The index of the face within the font. The first */
- /* face has index 0. */
+ /* face has index~0. */
/* */
/* <Output> */
/* aface :: A handle to a new face object. If `face_index' is */
@@ -1837,7 +1877,7 @@ FT_BEGIN_HEADER
/* See @FT_Open_Face for more details. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* You must not deallocate the memory before calling @FT_Done_Face. */
@@ -1867,7 +1907,7 @@ FT_BEGIN_HEADER
/* be filled by the caller. */
/* */
/* face_index :: The index of the face within the font. The first */
- /* face has index 0. */
+ /* face has index~0. */
/* */
/* <Output> */
/* aface :: A handle to a new face object. If `face_index' is */
@@ -1875,7 +1915,7 @@ FT_BEGIN_HEADER
/* See note below. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* Unlike FreeType 1.x, this function automatically creates a glyph */
@@ -1884,7 +1924,7 @@ FT_BEGIN_HEADER
/* */
/* FT_Open_Face can be used to quickly check whether the font */
/* format of a given font resource is supported by FreeType. If the */
- /* `face_index' field is negative, the function's return value is 0 */
+ /* `face_index' field is negative, the function's return value is~0 */
/* if the font format is recognized, or non-zero otherwise; */
/* the function returns a more or less empty face handle in `*aface' */
/* (if `aface' isn't NULL). The only useful field in this special */
@@ -1917,7 +1957,7 @@ FT_BEGIN_HEADER
/* filepathname :: The pathname. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Attach_File( FT_Face face,
@@ -1932,7 +1972,7 @@ FT_BEGIN_HEADER
/* <Description> */
/* `Attach' data to a face object. Normally, this is used to read */
/* additional information for the face object. For example, you can */
- /* attach an AFM file that comes with a Type 1 font to get the */
+ /* attach an AFM file that comes with a Type~1 font to get the */
/* kerning values and other metrics. */
/* */
/* <InOut> */
@@ -1943,7 +1983,7 @@ FT_BEGIN_HEADER
/* the caller. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* The meaning of the `attach' (i.e., what really happens when the */
@@ -1972,7 +2012,7 @@ FT_BEGIN_HEADER
/* face :: A handle to a target face object. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Done_Face( FT_Face face );
@@ -1994,7 +2034,7 @@ FT_BEGIN_HEADER
/* `available_sizes' field of @FT_FaceRec structure. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Select_Size( FT_Face face,
@@ -2080,8 +2120,8 @@ FT_BEGIN_HEADER
/* value. */
/* */
/* <Note> */
- /* If `width' is zero, then the horizontal scaling value is set */
- /* equal to the vertical scaling value, and vice versa. */
+ /* If `width' is zero, then the horizontal scaling value is set equal */
+ /* to the vertical scaling value, and vice versa. */
/* */
typedef struct FT_Size_RequestRec_
{
@@ -2120,7 +2160,7 @@ FT_BEGIN_HEADER
/* req :: A pointer to a @FT_Size_RequestRec. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* Although drivers may select the bitmap strike matching the */
@@ -2155,7 +2195,7 @@ FT_BEGIN_HEADER
/* vert_resolution :: The vertical resolution in dpi. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* If either the character width or height is zero, it is set equal */
@@ -2167,7 +2207,8 @@ FT_BEGIN_HEADER
/* A character width or height smaller than 1pt is set to 1pt; if */
/* both resolution values are zero, they are set to 72dpi. */
/* */
-
+ /* Don't use this function if you are using the FreeType cache API. */
+ /* */
FT_EXPORT( FT_Error )
FT_Set_Char_Size( FT_Face face,
FT_F26Dot6 char_width,
@@ -2194,7 +2235,7 @@ FT_BEGIN_HEADER
/* pixel_height :: The nominal height, in pixels. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Set_Pixel_Sizes( FT_Face face,
@@ -2227,7 +2268,7 @@ FT_BEGIN_HEADER
/* whether to hint the outline, etc). */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* The loaded glyph may be transformed. See @FT_Set_Transform for */
@@ -2268,7 +2309,7 @@ FT_BEGIN_HEADER
/* whether to hint the outline, etc). */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* This function simply calls @FT_Get_Char_Index and @FT_Load_Glyph. */
@@ -2290,7 +2331,7 @@ FT_BEGIN_HEADER
*
* @values:
* FT_LOAD_DEFAULT ::
- * Corresponding to 0, this value is used as the default glyph load
+ * Corresponding to~0, this value is used as the default glyph load
* operation. In this case, the following happens:
*
* 1. FreeType looks for a bitmap for the glyph corresponding to the
@@ -2380,10 +2421,10 @@ FT_BEGIN_HEADER
* FT_LOAD_MONOCHROME ::
* This flag is used with @FT_LOAD_RENDER to indicate that you want to
* render an outline glyph to a 1-bit monochrome bitmap glyph, with
- * 8 pixels packed into each byte of the bitmap data.
+ * 8~pixels packed into each byte of the bitmap data.
*
* Note that this has no effect on the hinting algorithm used. You
- * should use @FT_LOAD_TARGET_MONO instead so that the
+ * should rather use @FT_LOAD_TARGET_MONO so that the
* monochrome-optimized hinting algorithm is used.
*
* FT_LOAD_LINEAR_DESIGN ::
@@ -2394,12 +2435,6 @@ FT_BEGIN_HEADER
* FT_LOAD_NO_AUTOHINT ::
* Disable auto-hinter. See also the note below.
*
- *
- * FT_LOAD_ADVANCE_ONLY ::
- * Try to only load the glyph advance, and nothing else. when set, the
- * content of face->glyph might be garbage, except for the
- * face->glyph.advance vector.
- *
* @note:
* By default, hinting is enabled and the font's native hinter (see
* @FT_FACE_FLAG_HINTER) is preferred over the auto-hinter. You can
@@ -2408,8 +2443,12 @@ FT_BEGIN_HEADER
* @FT_LOAD_NO_AUTOHINT in case you don't want the auto-hinter to be
* used at all.
*
+ * See the description of @FT_FACE_FLAG_TRICKY for a special exception
+ * (affecting only a handful of Asian fonts).
+ *
* Besides deciding which hinter to use, you can also decide which
* hinting algorithm to use. See @FT_LOAD_TARGET_XXX for details.
+ *
*/
#define FT_LOAD_DEFAULT 0x0
#define FT_LOAD_NO_SCALE 0x1
@@ -2426,13 +2465,13 @@ FT_BEGIN_HEADER
#define FT_LOAD_MONOCHROME 0x1000
#define FT_LOAD_LINEAR_DESIGN 0x2000
#define FT_LOAD_NO_AUTOHINT 0x8000U
-#define FT_LOAD_ADVANCE_ONLY 0x10000U
-
- /* used internally only by certain font drivers ! */
-#define FT_LOAD_SBITS_ONLY 0x4000
/* */
+ /* used internally only by certain font drivers! */
+#define FT_LOAD_ADVANCE_ONLY 0x100
+#define FT_LOAD_SBITS_ONLY 0x4000
+
/**************************************************************************
*
@@ -2460,7 +2499,7 @@ FT_BEGIN_HEADER
* FT_LOAD_TARGET_LIGHT ::
* A lighter hinting algorithm for non-monochrome modes. Many
* generated glyphs are more fuzzy but better resemble its original
- * shape. A bit like rendering on Mac OS X.
+ * shape. A bit like rendering on Mac OS~X.
*
* As a special exception, this target implies @FT_LOAD_FORCE_AUTOHINT.
*
@@ -2496,15 +2535,15 @@ FT_BEGIN_HEADER
*
* FT_Render_Glyph( face->glyph, FT_RENDER_MODE_LCD );
* }
+ *
*/
+#define FT_LOAD_TARGET_( x ) ( (FT_Int32)( (x) & 15 ) << 16 )
-#define FT_LOAD_TARGET_( x ) ( (FT_Int32)( (x) & 15 ) << 16 )
-
-#define FT_LOAD_TARGET_NORMAL FT_LOAD_TARGET_( FT_RENDER_MODE_NORMAL )
-#define FT_LOAD_TARGET_LIGHT FT_LOAD_TARGET_( FT_RENDER_MODE_LIGHT )
-#define FT_LOAD_TARGET_MONO FT_LOAD_TARGET_( FT_RENDER_MODE_MONO )
-#define FT_LOAD_TARGET_LCD FT_LOAD_TARGET_( FT_RENDER_MODE_LCD )
-#define FT_LOAD_TARGET_LCD_V FT_LOAD_TARGET_( FT_RENDER_MODE_LCD_V )
+#define FT_LOAD_TARGET_NORMAL FT_LOAD_TARGET_( FT_RENDER_MODE_NORMAL )
+#define FT_LOAD_TARGET_LIGHT FT_LOAD_TARGET_( FT_RENDER_MODE_LIGHT )
+#define FT_LOAD_TARGET_MONO FT_LOAD_TARGET_( FT_RENDER_MODE_MONO )
+#define FT_LOAD_TARGET_LCD FT_LOAD_TARGET_( FT_RENDER_MODE_LCD )
+#define FT_LOAD_TARGET_LCD_V FT_LOAD_TARGET_( FT_RENDER_MODE_LCD_V )
/**************************************************************************
@@ -2517,11 +2556,8 @@ FT_BEGIN_HEADER
* @FT_LOAD_TARGET_XXX value.
*
*/
-
#define FT_LOAD_TARGET_MODE( x ) ( (FT_Render_Mode)( ( (x) >> 16 ) & 15 ) )
- /* */
-
/*************************************************************************/
/* */
@@ -2537,9 +2573,9 @@ FT_BEGIN_HEADER
/* face :: A handle to the source face object. */
/* */
/* <Input> */
- /* matrix :: A pointer to the transformation's 2x2 matrix. Use 0 for */
+ /* matrix :: A pointer to the transformation's 2x2 matrix. Use~0 for */
/* the identity matrix. */
- /* delta :: A pointer to the translation vector. Use 0 for the null */
+ /* delta :: A pointer to the translation vector. Use~0 for the null */
/* vector. */
/* */
/* <Note> */
@@ -2564,17 +2600,19 @@ FT_BEGIN_HEADER
/* */
/* <Description> */
/* An enumeration type that lists the render modes supported by */
- /* FreeType 2. Each mode corresponds to a specific type of scanline */
+ /* FreeType~2. Each mode corresponds to a specific type of scanline */
/* conversion performed on the outline. */
/* */
- /* For bitmap fonts the `bitmap->pixel_mode' field in the */
- /* @FT_GlyphSlotRec structure gives the format of the returned */
- /* bitmap. */
+ /* For bitmap fonts and embedded bitmaps the `bitmap->pixel_mode' */
+ /* field in the @FT_GlyphSlotRec structure gives the format of the */
+ /* returned bitmap. */
+ /* */
+ /* All modes except @FT_RENDER_MODE_MONO use 256 levels of opacity. */
/* */
/* <Values> */
/* FT_RENDER_MODE_NORMAL :: */
/* This is the default render mode; it corresponds to 8-bit */
- /* anti-aliased bitmaps, using 256 levels of opacity. */
+ /* anti-aliased bitmaps. */
/* */
/* FT_RENDER_MODE_LIGHT :: */
/* This is equivalent to @FT_RENDER_MODE_NORMAL. It is only */
@@ -2583,26 +2621,32 @@ FT_BEGIN_HEADER
/* @FT_LOAD_TARGET_XXX for details. */
/* */
/* FT_RENDER_MODE_MONO :: */
- /* This mode corresponds to 1-bit bitmaps. */
+ /* This mode corresponds to 1-bit bitmaps (with 2~levels of */
+ /* opacity). */
/* */
/* FT_RENDER_MODE_LCD :: */
/* This mode corresponds to horizontal RGB and BGR sub-pixel */
- /* displays, like LCD-screens. It produces 8-bit bitmaps that are */
- /* 3 times the width of the original glyph outline in pixels, and */
+ /* displays like LCD screens. It produces 8-bit bitmaps that are */
+ /* 3~times the width of the original glyph outline in pixels, and */
/* which use the @FT_PIXEL_MODE_LCD mode. */
/* */
/* FT_RENDER_MODE_LCD_V :: */
/* This mode corresponds to vertical RGB and BGR sub-pixel displays */
/* (like PDA screens, rotated LCD displays, etc.). It produces */
- /* 8-bit bitmaps that are 3 times the height of the original */
+ /* 8-bit bitmaps that are 3~times the height of the original */
/* glyph outline in pixels and use the @FT_PIXEL_MODE_LCD_V mode. */
/* */
/* <Note> */
- /* The LCD-optimized glyph bitmaps produced by FT_Render_Glyph can be */
- /* filtered to reduce color-fringes by using @FT_Library_SetLcdFilter */
- /* (not active in the default builds). It is up to the caller to */
- /* either call @FT_Library_SetLcdFilter (if available) or do the */
- /* filtering itself. */
+ /* The LCD-optimized glyph bitmaps produced by FT_Render_Glyph can be */
+ /* filtered to reduce color-fringes by using @FT_Library_SetLcdFilter */
+ /* (not active in the default builds). It is up to the caller to */
+ /* either call @FT_Library_SetLcdFilter (if available) or do the */
+ /* filtering itself. */
+ /* */
+ /* The selected render mode only affects vector glyphs of a font. */
+ /* Embedded bitmaps often have a different pixel mode like */
+ /* @FT_PIXEL_MODE_MONO. You can use @FT_Bitmap_Convert to transform */
+ /* them into 8-bit pixmaps. */
/* */
typedef enum FT_Render_Mode_
{
@@ -2627,8 +2671,8 @@ FT_BEGIN_HEADER
/* @FT_Render_Mode values instead. */
/* */
/* <Values> */
- /* ft_render_mode_normal :: see @FT_RENDER_MODE_NORMAL */
- /* ft_render_mode_mono :: see @FT_RENDER_MODE_MONO */
+ /* ft_render_mode_normal :: see @FT_RENDER_MODE_NORMAL */
+ /* ft_render_mode_mono :: see @FT_RENDER_MODE_MONO */
/* */
#define ft_render_mode_normal FT_RENDER_MODE_NORMAL
#define ft_render_mode_mono FT_RENDER_MODE_MONO
@@ -2654,7 +2698,7 @@ FT_BEGIN_HEADER
/* list of possible values. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Render_Glyph( FT_GlyphSlot slot,
@@ -2672,7 +2716,7 @@ FT_BEGIN_HEADER
/* */
/* <Values> */
/* FT_KERNING_DEFAULT :: Return scaled and grid-fitted kerning */
- /* distances (value is 0). */
+ /* distances (value is~0). */
/* */
/* FT_KERNING_UNFITTED :: Return scaled but un-grid-fitted kerning */
/* distances. */
@@ -2750,7 +2794,7 @@ FT_BEGIN_HEADER
/* and in pixels for fixed-sizes formats. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* Only horizontal layouts (left-to-right & right-to-left) are */
@@ -2775,17 +2819,17 @@ FT_BEGIN_HEADER
/* Return the track kerning for a given face object at a given size. */
/* */
/* <Input> */
- /* face :: A handle to a source face object. */
+ /* face :: A handle to a source face object. */
/* */
- /* point_size :: The point size in 16.16 fractional points. */
+ /* point_size :: The point size in 16.16 fractional points. */
/* */
- /* degree :: The degree of tightness. */
+ /* degree :: The degree of tightness. */
/* */
/* <Output> */
- /* akerning :: The kerning in 16.16 fractional points. */
+ /* akerning :: The kerning in 16.16 fractional points. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Get_Track_Kerning( FT_Face face,
@@ -2801,7 +2845,7 @@ FT_BEGIN_HEADER
/* */
/* <Description> */
/* Retrieve the ASCII name of a given glyph in a face. This only */
- /* works for those faces where @FT_HAS_GLYPH_NAMES(face) returns 1. */
+ /* works for those faces where @FT_HAS_GLYPH_NAMES(face) returns~1. */
/* */
/* <Input> */
/* face :: A handle to a source face object. */
@@ -2816,12 +2860,12 @@ FT_BEGIN_HEADER
/* copied to. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* An error is returned if the face doesn't provide glyph names or if */
/* the glyph index is invalid. In all cases of failure, the first */
- /* byte of `buffer' is set to 0 to indicate an empty name. */
+ /* byte of `buffer' is set to~0 to indicate an empty name. */
/* */
/* The glyph name is truncated to fit within the buffer if it is too */
/* long. The returned string is always zero-terminated. */
@@ -2843,14 +2887,14 @@ FT_BEGIN_HEADER
/* FT_Get_Postscript_Name */
/* */
/* <Description> */
- /* Retrieve the ASCII Postscript name of a given face, if available. */
- /* This only works with Postscript and TrueType fonts. */
+ /* Retrieve the ASCII PostScript name of a given face, if available. */
+ /* This only works with PostScript and TrueType fonts. */
/* */
/* <Input> */
/* face :: A handle to the source face object. */
/* */
/* <Return> */
- /* A pointer to the face's Postscript name. NULL if unavailable. */
+ /* A pointer to the face's PostScript name. NULL if unavailable. */
/* */
/* <Note> */
/* The returned pointer is owned by the face and is destroyed with */
@@ -2876,7 +2920,7 @@ FT_BEGIN_HEADER
/* encoding :: A handle to the selected encoding. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* This function returns an error if no charmap in the face */
@@ -2908,14 +2952,14 @@ FT_BEGIN_HEADER
/* charmap :: A handle to the selected charmap. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* This function returns an error if the charmap is not part of */
/* the face (i.e., if it is not listed in the `face->charmaps' */
/* table). */
/* */
- /* It also fails if a type 14 charmap is selected. */
+ /* It also fails if a type~14 charmap is selected. */
/* */
FT_EXPORT( FT_Error )
FT_Set_Charmap( FT_Face face,
@@ -2958,13 +3002,13 @@ FT_BEGIN_HEADER
/* charcode :: The character code. */
/* */
/* <Return> */
- /* The glyph index. 0 means `undefined character code'. */
+ /* The glyph index. 0~means `undefined character code'. */
/* */
/* <Note> */
/* If you use FreeType to manipulate the contents of font files */
/* directly, be aware that the glyph index returned by this function */
/* doesn't always correspond to the internal indices used within */
- /* the file. This is done to ensure that value 0 always corresponds */
+ /* the file. This is done to ensure that value~0 always corresponds */
/* to the `missing glyph'. */
/* */
FT_EXPORT( FT_UInt )
@@ -2986,7 +3030,7 @@ FT_BEGIN_HEADER
/* face :: A handle to the source face object. */
/* */
/* <Output> */
- /* agindex :: Glyph index of first character code. 0 if charmap is */
+ /* agindex :: Glyph index of first character code. 0~if charmap is */
/* empty. */
/* */
/* <Return> */
@@ -3011,9 +3055,9 @@ FT_BEGIN_HEADER
/* } */
/* } */
/* */
- /* Note that `*agindex' is set to 0 if the charmap is empty. The */
- /* result itself can be 0 in two cases: if the charmap is empty or */
- /* when the value 0 is the first valid character code. */
+ /* Note that `*agindex' is set to~0 if the charmap is empty. The */
+ /* result itself can be~0 in two cases: if the charmap is empty or */
+ /* if the value~0 is the first valid character code. */
/* */
FT_EXPORT( FT_ULong )
FT_Get_First_Char( FT_Face face,
@@ -3035,7 +3079,7 @@ FT_BEGIN_HEADER
/* char_code :: The starting character code. */
/* */
/* <Output> */
- /* agindex :: Glyph index of first character code. 0 if charmap */
+ /* agindex :: Glyph index of next character code. 0~if charmap */
/* is empty. */
/* */
/* <Return> */
@@ -3046,7 +3090,7 @@ FT_BEGIN_HEADER
/* over all character codes available in a given charmap. See the */
/* note for this function for a simple code example. */
/* */
- /* Note that `*agindex' is set to 0 when there are no more codes in */
+ /* Note that `*agindex' is set to~0 when there are no more codes in */
/* the charmap. */
/* */
FT_EXPORT( FT_ULong )
@@ -3070,7 +3114,7 @@ FT_BEGIN_HEADER
/* glyph_name :: The glyph name. */
/* */
/* <Return> */
- /* The glyph index. 0 means `undefined character code'. */
+ /* The glyph index. 0~means `undefined character code'. */
/* */
FT_EXPORT( FT_UInt )
FT_Get_Name_Index( FT_Face face,
@@ -3112,15 +3156,16 @@ FT_BEGIN_HEADER
*
* @description:
* Retrieve a description of a given subglyph. Only use it if
- * `glyph->format' is @FT_GLYPH_FORMAT_COMPOSITE, or an error is
- * returned.
+ * `glyph->format' is @FT_GLYPH_FORMAT_COMPOSITE; an error is
+ * returned otherwise.
*
* @input:
* glyph ::
* The source glyph slot.
*
* sub_index ::
- * The index of subglyph. Must be less than `glyph->num_subglyphs'.
+ * The index of the subglyph. Must be less than
+ * `glyph->num_subglyphs'.
*
* @output:
* p_index ::
@@ -3139,7 +3184,7 @@ FT_BEGIN_HEADER
* The subglyph transformation (if any).
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* The values of `*p_arg1', `*p_arg2', and `*p_transform' must be
@@ -3155,6 +3200,90 @@ FT_BEGIN_HEADER
FT_Int *p_arg1,
FT_Int *p_arg2,
FT_Matrix *p_transform );
+
+
+ /*************************************************************************/
+ /* */
+ /* <Enum> */
+ /* FT_FSTYPE_XXX */
+ /* */
+ /* <Description> */
+ /* A list of bit flags used in the `fsType' field of the OS/2 table */
+ /* in a TrueType or OpenType font and the `FSType' entry in a */
+ /* PostScript font. These bit flags are returned by */
+ /* @FT_Get_FSType_Flags; they inform client applications of embedding */
+ /* and subsetting restrictions associated with a font. */
+ /* */
+ /* See http://www.adobe.com/devnet/acrobat/pdfs/FontPolicies.pdf for */
+ /* more details. */
+ /* */
+ /* <Values> */
+ /* FT_FSTYPE_INSTALLABLE_EMBEDDING :: */
+ /* Fonts with no fsType bit set may be embedded and permanently */
+ /* installed on the remote system by an application. */
+ /* */
+ /* FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING :: */
+ /* Fonts that have only this bit set must not be modified, embedded */
+ /* or exchanged in any manner without first obtaining permission of */
+ /* the font software copyright owner. */
+ /* */
+ /* FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING :: */
+ /* If this bit is set, the font may be embedded and temporarily */
+ /* loaded on the remote system. Documents containing Preview & */
+ /* Print fonts must be opened `read-only'; no edits can be applied */
+ /* to the document. */
+ /* */
+ /* FT_FSTYPE_EDITABLE_EMBEDDING :: */
+ /* If this bit is set, the font may be embedded but must only be */
+ /* installed temporarily on other systems. In contrast to Preview */
+ /* & Print fonts, documents containing editable fonts may be opened */
+ /* for reading, editing is permitted, and changes may be saved. */
+ /* */
+ /* FT_FSTYPE_NO_SUBSETTING :: */
+ /* If this bit is set, the font may not be subsetted prior to */
+ /* embedding. */
+ /* */
+ /* FT_FSTYPE_BITMAP_EMBEDDING_ONLY :: */
+ /* If this bit is set, only bitmaps contained in the font may be */
+ /* embedded; no outline data may be embedded. If there are no */
+ /* bitmaps available in the font, then the font is unembeddable. */
+ /* */
+ /* <Note> */
+ /* While the fsType flags can indicate that a font may be embedded, a */
+ /* license with the font vendor may be separately required to use the */
+ /* font in this way. */
+ /* */
+#define FT_FSTYPE_INSTALLABLE_EMBEDDING 0x0000
+#define FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING 0x0002
+#define FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING 0x0004
+#define FT_FSTYPE_EDITABLE_EMBEDDING 0x0008
+#define FT_FSTYPE_NO_SUBSETTING 0x0100
+#define FT_FSTYPE_BITMAP_EMBEDDING_ONLY 0x0200
+
+
+ /*************************************************************************/
+ /* */
+ /* <Function> */
+ /* FT_Get_FSType_Flags */
+ /* */
+ /* <Description> */
+ /* Return the fsType flags for a font. */
+ /* */
+ /* <Input> */
+ /* face :: A handle to the source face object. */
+ /* */
+ /* <Return> */
+ /* The fsType flags, @FT_FSTYPE_XXX. */
+ /* */
+ /* <Note> */
+ /* Use this function rather than directly reading the `fs_type' field */
+ /* in the @PS_FontInfoRec structure which is only guaranteed to */
+ /* return the correct results for Type~1 fonts. */
+ /* */
+ FT_EXPORT( FT_UShort )
+ FT_Get_FSType_Flags( FT_Face face );
+
+
/*************************************************************************/
/* */
/* <Section> */
@@ -3164,8 +3293,8 @@ FT_BEGIN_HEADER
/* Glyph Variants */
/* */
/* <Abstract> */
- /* The FreeType 2 interface to Unicode Ideographic Variation */
- /* Sequences (IVS), using the SFNT cmap format 14. */
+ /* The FreeType~2 interface to Unicode Ideographic Variation */
+ /* Sequences (IVS), using the SFNT cmap format~14. */
/* */
/* <Description> */
/* Many CJK characters have variant forms. They are a sort of grey */
@@ -3179,10 +3308,10 @@ FT_BEGIN_HEADER
/* An IVS is registered and unique; for further details please refer */
/* to Unicode Technical Report #37, the Ideographic Variation */
/* Database. To date (October 2007), the character with the most */
- /* variants is U+908A, having 8 such IVS. */
+ /* variants is U+908A, having 8~such IVS. */
/* */
/* Adobe and MS decided to support IVS with a new cmap subtable */
- /* (format 14). It is an odd subtable because it is not a mapping of */
+ /* (format~14). It is an odd subtable because it is not a mapping of */
/* input code points to glyphs, but contains lists of all variants */
/* supported by the font. */
/* */
@@ -3214,7 +3343,7 @@ FT_BEGIN_HEADER
/* The Unicode code point of the variation selector. */
/* */
/* <Return> */
- /* The glyph index. 0 means either `undefined character code', or */
+ /* The glyph index. 0~means either `undefined character code', or */
/* `undefined selector code', or `no variation selector cmap */
/* subtable', or `current CharMap is not Unicode'. */
/* */
@@ -3222,7 +3351,7 @@ FT_BEGIN_HEADER
/* If you use FreeType to manipulate the contents of font files */
/* directly, be aware that the glyph index returned by this function */
/* doesn't always correspond to the internal indices used within */
- /* the file. This is done to ensure that value 0 always corresponds */
+ /* the file. This is done to ensure that value~0 always corresponds */
/* to the `missing glyph'. */
/* */
/* This function is only meaningful if */
@@ -3259,7 +3388,7 @@ FT_BEGIN_HEADER
/* The Unicode codepoint of the variation selector. */
/* */
/* <Return> */
- /* 1 if found in the standard (Unicode) cmap, 0 if found in the */
+ /* 1~if found in the standard (Unicode) cmap, 0~if found in the */
/* variation selector cmap, or -1 if it is not a variant. */
/* */
/* <Note> */
@@ -3293,7 +3422,7 @@ FT_BEGIN_HEADER
/* no valid variant selector cmap subtable. */
/* */
/* <Note> */
- /* The last item in the array is 0; the array is owned by the */
+ /* The last item in the array is~0; the array is owned by the */
/* @FT_Face object but can be overwritten or released on the next */
/* call to a FreeType function. */
/* */
@@ -3326,7 +3455,7 @@ FT_BEGIN_HEADER
/* is empty. */
/* */
/* <Note> */
- /* The last item in the array is 0; the array is owned by the */
+ /* The last item in the array is~0; the array is owned by the */
/* @FT_Face object but can be overwritten or released on the next */
/* call to a FreeType function. */
/* */
@@ -3360,7 +3489,7 @@ FT_BEGIN_HEADER
/* is no valid cmap or the variant selector is invalid. */
/* */
/* <Note> */
- /* The last item in the array is 0; the array is owned by the */
+ /* The last item in the array is~0; the array is owned by the */
/* @FT_Face object but can be overwritten or released on the next */
/* call to a FreeType function. */
/* */
@@ -3430,6 +3559,12 @@ FT_BEGIN_HEADER
FT_Long c );
+ /* */
+
+ /* The following #if 0 ... #endif is for the documentation formatter, */
+ /* hiding the internal `FT_MULFIX_INLINED' macro. */
+
+#if 0
/*************************************************************************/
/* */
/* <Function> */
@@ -3459,14 +3594,22 @@ FT_BEGIN_HEADER
/* _second_ argument of this function; this can make a great */
/* difference. */
/* */
+ FT_EXPORT( FT_Long )
+ FT_MulFix( FT_Long a,
+ FT_Long b );
+
+ /* */
+#endif
+
#ifdef FT_MULFIX_INLINED
-# define FT_MulFix(a,b) FT_MULFIX_INLINED(a,b)
+#define FT_MulFix( a, b ) FT_MULFIX_INLINED( a, b )
#else
FT_EXPORT( FT_Long )
FT_MulFix( FT_Long a,
FT_Long b );
#endif
+
/*************************************************************************/
/* */
/* <Function> */
@@ -3486,8 +3629,8 @@ FT_BEGIN_HEADER
/* The result of `(a*0x10000)/b'. */
/* */
/* <Note> */
- /* The optimization for FT_DivFix() is simple: If (a << 16) fits in */
- /* 32 bits, then the division is computed directly. Otherwise, we */
+ /* The optimization for FT_DivFix() is simple: If (a~<<~16) fits in */
+ /* 32~bits, then the division is computed directly. Otherwise, we */
/* use a specialized version of @FT_MulDiv. */
/* */
FT_EXPORT( FT_Long )
@@ -3594,26 +3737,27 @@ FT_BEGIN_HEADER
/*************************************************************************
*
- * @enum:
- * FREETYPE_XXX
+ * @enum:
+ * FREETYPE_XXX
*
- * @description:
- * These three macros identify the FreeType source code version.
- * Use @FT_Library_Version to access them at runtime.
+ * @description:
+ * These three macros identify the FreeType source code version.
+ * Use @FT_Library_Version to access them at runtime.
*
- * @values:
- * FREETYPE_MAJOR :: The major version number.
- * FREETYPE_MINOR :: The minor version number.
- * FREETYPE_PATCH :: The patch level.
+ * @values:
+ * FREETYPE_MAJOR :: The major version number.
+ * FREETYPE_MINOR :: The minor version number.
+ * FREETYPE_PATCH :: The patch level.
+ *
+ * @note:
+ * The version number of FreeType if built as a dynamic link library
+ * with the `libtool' package is _not_ controlled by these three
+ * macros.
*
- * @note:
- * The version number of FreeType if built as a dynamic link library
- * with the `libtool' package is _not_ controlled by these three
- * macros.
*/
#define FREETYPE_MAJOR 2
#define FREETYPE_MINOR 3
-#define FREETYPE_PATCH 6
+#define FREETYPE_PATCH 9
/*************************************************************************/
@@ -3670,8 +3814,8 @@ FT_BEGIN_HEADER
/* face :: A face handle. */
/* */
/* <Return> */
- /* 1 if this is a TrueType font that uses one of the patented */
- /* opcodes, 0 otherwise. */
+ /* 1~if this is a TrueType font that uses one of the patented */
+ /* opcodes, 0~otherwise. */
/* */
/* <Since> */
/* 2.3.5 */
@@ -3697,7 +3841,7 @@ FT_BEGIN_HEADER
/* */
/* <Return> */
/* The old setting value. This will always be false if this is not */
- /* a SFNT font, or if the unpatented hinter is not compiled in this */
+ /* an SFNT font, or if the unpatented hinter is not compiled in this */
/* instance of the library. */
/* */
/* <Since> */
diff --git a/include/freetype/ftadvanc.h b/include/freetype/ftadvanc.h
index 108b1ce..b2451be 100644
--- a/include/freetype/ftadvanc.h
+++ b/include/freetype/ftadvanc.h
@@ -2,9 +2,9 @@
/* */
/* ftadvanc.h */
/* */
-/* FreeType access the glyph advances (specification only). */
+/* Quick computation of advance widths (specification only). */
/* */
-/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007 by */
+/* Copyright 2008 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -15,33 +15,64 @@
/* */
/***************************************************************************/
-#ifndef __FREETYPE_ADVANCE_H__
-#define __FREETYPE_ADVANCE_H__
+
+#ifndef __FTADVANC_H__
+#define __FTADVANC_H__
+
#include <ft2build.h>
#include FT_FREETYPE_H
+#ifdef FREETYPE_H
+#error "freetype.h of FreeType 1 has been loaded!"
+#error "Please fix the directory search order for header files"
+#error "so that freetype.h of FreeType 2 is found first."
+#endif
+
+
+FT_BEGIN_HEADER
+
+
+ /**************************************************************************
+ *
+ * @section:
+ * quick_advance
+ *
+ * @title:
+ * Quick retrieval of advance values
+ *
+ * @abstract:
+ * Retrieve horizontal and vertical advance values without processing
+ * glyph outlines, if possible.
+ *
+ * @description:
+ * This section contains functions to quickly extract advance values
+ * without handling glyph outlines, if possible.
+ */
+
+
/*************************************************************************/
/* */
/* <Const> */
/* FT_ADVANCE_FLAG_FAST_ONLY */
/* */
/* <Description> */
- /* a bit-flag to be or-ed to the 'flags' parameter of the */
- /* @FT_Get_Advance and @FT_Get_Advances. */
+ /* A bit-flag to be OR-ed with the `flags' parameter of the */
+ /* @FT_Get_Advance and @FT_Get_Advances functions. */
/* */
- /* when set, it indicates that you want these functions to fail */
- /* if the corresponding hinting mode or font driver doesn't */
- /* allow for very quick advance computation. */
+ /* If set, it indicates that you want these functions to fail if the */
+ /* corresponding hinting mode or font driver doesn't allow for very */
+ /* quick advance computation. */
/* */
- /* typically, unscaled, unhinted, bitmapped and light-hinted glyphs */
- /* can have their advance width(s) computed very quickly. */
+ /* Typically, glyphs which are either unscaled, unhinted, bitmapped, */
+ /* or light-hinted can have their advance width computed very */
+ /* quickly. */
/* */
- /* not so for normal and bytecode hinted modes, which require */
- /* loading/scaling/hinting the glyph outline instead, which is */
- /* extremely slow by comparison */
+ /* Normal and bytecode hinted modes, which require loading, scaling, */
+ /* and hinting of the glyph outline, are extremely slow by */
+ /* comparison. */
/* */
-#define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000U
+#define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000UL
/*************************************************************************/
@@ -50,82 +81,99 @@
/* FT_Get_Advance */
/* */
/* <Description> */
- /* Retrieve the advance of a given glyph outline in a FT_Face. */
- /* by default, the unhinted advance is returned in font units */
+ /* Retrieve the advance value of a given glyph outline in an */
+ /* @FT_Face. By default, the unhinted advance is returned in font */
+ /* units. */
/* */
/* <Input> */
- /* face :: source FT_Face handle */
- /* gindex :: glyph index */
- /* load_flags :: a set of bit-flags similar to those used */
- /* when calling @FT_Load_Glyph, used to determine */
- /* what kind of advances you need. */
+ /* face :: The source @FT_Face handle. */
+ /* */
+ /* gindex :: The glyph index. */
+ /* */
+ /* load_flags :: A set of bit flags similar to those used when */
+ /* calling @FT_Load_Glyph, used to determine what kind */
+ /* of advances you need. */
/* <Output> */
- /* padvance :: the advance value, in either font units or 16.16 */
+ /* padvance :: The advance value, in either font units or 16.16 */
/* format. */
/* */
- /* if @FT_LOAD_VERTICAL_LAYOUT is set, this is the */
+ /* If @FT_LOAD_VERTICAL_LAYOUT is set, this is the */
/* vertical advance corresponding to a vertical layout. */
- /* otherwise, it's the horizontal advance in an */
+ /* Otherwise, it is the horizontal advance in a */
/* horizontal layout. */
+ /* */
/* <Return> */
/* FreeType error code. 0 means success. */
/* */
/* <Note> */
/* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and */
- /* if the corresponding's font backend doesn't have a quick way to */
+ /* if the corresponding font backend doesn't have a quick way to */
/* retrieve the advances. */
/* */
- /* A scaled advance is returned in 16.16 format, but isn't */
- /* transformed by the affine transform specified by @FT_Set_Transform */
+ /* A scaled advance is returned in 16.16 format but isn't transformed */
+ /* by the affine transformation specified by @FT_Set_Transform. */
/* */
FT_EXPORT( FT_Error )
FT_Get_Advance( FT_Face face,
FT_UInt gindex,
- FT_UInt load_flags,
+ FT_Int32 load_flags,
FT_Fixed *padvance );
+
/*************************************************************************/
/* */
/* <Function> */
/* FT_Get_Advances */
/* */
/* <Description> */
- /* Retrieve the advance of several glyph outlines in a FT_Face. */
- /* by default, the unhinted advances are returned in font units */
+ /* Retrieve the advance values of several glyph outlines in an */
+ /* @FT_Face. By default, the unhinted advances are returned in font */
+ /* units. */
/* */
/* <Input> */
- /* face :: source FT_Face handle */
- /* start :: first glyph index */
- /* count :: number of advances you want to retrieve */
- /* load_flags :: a set of bit-flags similar to those used when */
+ /* face :: The source @FT_Face handle. */
+ /* */
+ /* start :: The first glyph index. */
+ /* */
+ /* count :: The number of advance values you want to retrieve. */
+ /* */
+ /* load_flags :: A set of bit flags similar to those used when */
/* calling @FT_Load_Glyph. */
/* */
/* <Output> */
- /* padvance :: the advances, in either font units or 16.16 format. */
- /* this array must contain at least 'count' elements */
+ /* padvance :: The advances, in either font units or 16.16 format. */
+ /* This array must contain at least `count' elements. */
/* */
- /* if @FT_LOAD_VERTICAL_LAYOUT is set, these are the */
+ /* If @FT_LOAD_VERTICAL_LAYOUT is set, these are the */
/* vertical advances corresponding to a vertical layout. */
- /* otherwise, they are the horizontal advances in an */
+ /* Otherwise, they are the horizontal advances in a */
/* horizontal layout. */
+ /* */
/* <Return> */
/* FreeType error code. 0 means success. */
/* */
/* <Note> */
/* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and */
- /* if the corresponding's font backend doesn't have a quick way to */
+ /* if the corresponding font backend doesn't have a quick way to */
/* retrieve the advances. */
/* */
- /* Scaled advances are returned in 16.16 format, but aren't */
- /* transformed by the affine transform specified by @FT_Set_Transform */
+ /* Scaled advances are returned in 16.16 format but aren't */
+ /* transformed by the affine transformation specified by */
+ /* @FT_Set_Transform. */
/* */
FT_EXPORT( FT_Error )
FT_Get_Advances( FT_Face face,
FT_UInt start,
FT_UInt count,
- FT_UInt load_flags,
+ FT_Int32 load_flags,
FT_Fixed *padvances );
/* */
-#endif /* __FREETYPE_ADVANCE_H__ */
+
+FT_END_HEADER
+
+#endif /* __FTADVANC_H__ */
+
+
+/* END */
diff --git a/include/freetype/ftbbox.h b/include/freetype/ftbbox.h
index 050194c..01fe3fb 100644
--- a/include/freetype/ftbbox.h
+++ b/include/freetype/ftbbox.h
@@ -58,7 +58,7 @@ FT_BEGIN_HEADER
/* FT_Outline_Get_BBox */
/* */
/* <Description> */
- /* Computes the exact bounding box of an outline. This is slower */
+ /* Compute the exact bounding box of an outline. This is slower */
/* than computing the control box. However, it uses an advanced */
/* algorithm which returns _very_ quickly when the two boxes */
/* coincide. Otherwise, the outline Bézier arcs are traversed to */
@@ -71,7 +71,7 @@ FT_BEGIN_HEADER
/* abbox :: The outline's exact bounding box. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Outline_Get_BBox( FT_Outline* outline,
diff --git a/include/freetype/ftbdf.h b/include/freetype/ftbdf.h
index 9555694..4f8baf8 100644
--- a/include/freetype/ftbdf.h
+++ b/include/freetype/ftbdf.h
@@ -4,7 +4,7 @@
/* */
/* FreeType API for accessing BDF-specific strings (specification). */
/* */
-/* Copyright 2002, 2003, 2004, 2006 by */
+/* Copyright 2002, 2003, 2004, 2006, 2009 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -38,38 +38,39 @@ FT_BEGIN_HEADER
/* bdf_fonts */
/* */
/* <Title> */
- /* BDF Files */
+ /* BDF and PCF Files */
/* */
/* <Abstract> */
- /* BDF specific API. */
+ /* BDF and PCF specific API. */
/* */
/* <Description> */
- /* This section contains the declaration of BDF specific functions. */
+ /* This section contains the declaration of functions specific to BDF */
+ /* and PCF fonts. */
/* */
/*************************************************************************/
- /**********************************************************************
- *
- * @enum:
- * FT_PropertyType
- *
- * @description:
- * A list of BDF property types.
- *
- * @values:
- * BDF_PROPERTY_TYPE_NONE ::
- * Value 0 is used to indicate a missing property.
- *
- * BDF_PROPERTY_TYPE_ATOM ::
- * Property is a string atom.
- *
- * BDF_PROPERTY_TYPE_INTEGER ::
- * Property is a 32-bit signed integer.
- *
- * BDF_PROPERTY_TYPE_CARDINAL ::
- * Property is a 32-bit unsigned integer.
- */
+ /**********************************************************************
+ *
+ * @enum:
+ * FT_PropertyType
+ *
+ * @description:
+ * A list of BDF property types.
+ *
+ * @values:
+ * BDF_PROPERTY_TYPE_NONE ::
+ * Value~0 is used to indicate a missing property.
+ *
+ * BDF_PROPERTY_TYPE_ATOM ::
+ * Property is a string atom.
+ *
+ * BDF_PROPERTY_TYPE_INTEGER ::
+ * Property is a 32-bit signed integer.
+ *
+ * BDF_PROPERTY_TYPE_CARDINAL ::
+ * Property is a 32-bit unsigned integer.
+ */
typedef enum BDF_PropertyType_
{
BDF_PROPERTY_TYPE_NONE = 0,
@@ -80,15 +81,15 @@ FT_BEGIN_HEADER
} BDF_PropertyType;
- /**********************************************************************
- *
- * @type:
- * BDF_Property
- *
- * @description:
- * A handle to a @BDF_PropertyRec structure to model a given
- * BDF/PCF property.
- */
+ /**********************************************************************
+ *
+ * @type:
+ * BDF_Property
+ *
+ * @description:
+ * A handle to a @BDF_PropertyRec structure to model a given
+ * BDF/PCF property.
+ */
typedef struct BDF_PropertyRec_* BDF_Property;
@@ -132,7 +133,7 @@ FT_BEGIN_HEADER
* FT_Get_BDF_Charset_ID
*
* @description:
- * Retrieves a BDF font character set identity, according to
+ * Retrieve a BDF font character set identity, according to
* the BDF specification.
*
* @input:
@@ -141,13 +142,13 @@ FT_BEGIN_HEADER
*
* @output:
* acharset_encoding ::
- * Charset encoding, as a C string, owned by the face.
+ * Charset encoding, as a C~string, owned by the face.
*
* acharset_registry ::
- * Charset registry, as a C string, owned by the face.
+ * Charset registry, as a C~string, owned by the face.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* This function only works with BDF faces, returning an error otherwise.
@@ -164,7 +165,7 @@ FT_BEGIN_HEADER
* FT_Get_BDF_Property
*
* @description:
- * Retrieves a BDF property from a BDF or PCF font file.
+ * Retrieve a BDF property from a BDF or PCF font file.
*
* @input:
* face :: A handle to the input face.
@@ -175,13 +176,21 @@ FT_BEGIN_HEADER
* aproperty :: The property.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* This function works with BDF _and_ PCF fonts. It returns an error
* otherwise. It also returns an error if the property is not in the
* font.
*
+ * A `property' is a either key-value pair within the STARTPROPERTIES
+ * ... ENDPROPERTIES block of a BDF font or a key-value pair from the
+ * `info->props' array within a `FontRec' structure of a PCF font.
+ *
+ * Integer properties are always stored as `signed' within PCF fonts;
+ * consequently, @BDF_PROPERTY_TYPE_CARDINAL is a possible return value
+ * for BDF fonts only.
+ *
* In case of error, `aproperty->type' is always set to
* @BDF_PROPERTY_TYPE_NONE.
*/
diff --git a/include/freetype/ftbitmap.h b/include/freetype/ftbitmap.h
index 337d888..9274236 100644
--- a/include/freetype/ftbitmap.h
+++ b/include/freetype/ftbitmap.h
@@ -2,10 +2,9 @@
/* */
/* ftbitmap.h */
/* */
-/* FreeType utility functions for converting 1bpp, 2bpp, 4bpp, and 8bpp */
-/* bitmaps into 8bpp format (specification). */
+/* FreeType utility functions for bitmaps (specification). */
/* */
-/* Copyright 2004, 2005, 2006 by */
+/* Copyright 2004, 2005, 2006, 2008 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -72,7 +71,7 @@ FT_BEGIN_HEADER
/* FT_Bitmap_Copy */
/* */
/* <Description> */
- /* Copies an bitmap into another one. */
+ /* Copy a bitmap into another one. */
/* */
/* <Input> */
/* library :: A handle to a library object. */
@@ -83,7 +82,7 @@ FT_BEGIN_HEADER
/* target :: A handle to the target bitmap. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Bitmap_Copy( FT_Library library,
@@ -114,14 +113,14 @@ FT_BEGIN_HEADER
/* bitmap :: A handle to the target bitmap. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* The current implementation restricts `xStrength' to be less than */
- /* or equal to 8 if bitmap is of pixel_mode @FT_PIXEL_MODE_MONO. */
+ /* or equal to~8 if bitmap is of pixel_mode @FT_PIXEL_MODE_MONO. */
/* */
/* If you want to embolden the bitmap owned by a @FT_GlyphSlotRec, */
- /* you should call `FT_GlyphSlot_Own_Bitmap' on the slot first. */
+ /* you should call @FT_GlyphSlot_Own_Bitmap on the slot first. */
/* */
FT_EXPORT( FT_Error )
FT_Bitmap_Embolden( FT_Library library,
@@ -152,7 +151,7 @@ FT_BEGIN_HEADER
/* target :: The target bitmap. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* It is possible to call @FT_Bitmap_Convert multiple times without */
@@ -173,6 +172,28 @@ FT_BEGIN_HEADER
/*************************************************************************/
/* */
/* <Function> */
+ /* FT_GlyphSlot_Own_Bitmap */
+ /* */
+ /* <Description> */
+ /* Make sure that a glyph slot owns `slot->bitmap'. */
+ /* */
+ /* <Input> */
+ /* slot :: The glyph slot. */
+ /* */
+ /* <Return> */
+ /* FreeType error code. 0~means success. */
+ /* */
+ /* <Note> */
+ /* This function is to be used in combination with */
+ /* @FT_Bitmap_Embolden. */
+ /* */
+ FT_EXPORT( FT_Error )
+ FT_GlyphSlot_Own_Bitmap( FT_GlyphSlot slot );
+
+
+ /*************************************************************************/
+ /* */
+ /* <Function> */
/* FT_Bitmap_Done */
/* */
/* <Description> */
@@ -184,7 +205,7 @@ FT_BEGIN_HEADER
/* bitmap :: The bitmap object to be freed. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* The `library' argument is taken to have access to FreeType's */
diff --git a/include/freetype/ftcache.h b/include/freetype/ftcache.h
index 805df78..0916d70 100644
--- a/include/freetype/ftcache.h
+++ b/include/freetype/ftcache.h
@@ -36,10 +36,10 @@ FT_BEGIN_HEADER
* Cache Sub-System
*
* <Abstract>
- * How to cache face, size, and glyph data with FreeType 2.
+ * How to cache face, size, and glyph data with FreeType~2.
*
* <Description>
- * This section describes the FreeType 2 cache sub-system, which is used
+ * This section describes the FreeType~2 cache sub-system, which is used
* to limit the number of concurrently opened @FT_Face and @FT_Size
* objects, as well as caching information like character maps and glyph
* images while limiting their maximum memory usage.
@@ -193,7 +193,7 @@ FT_BEGIN_HEADER
* A new @FT_Face handle.
*
* <Return>
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* <Note>
* The third parameter `req_data' is the same as the one passed by the
@@ -260,7 +260,7 @@ FT_BEGIN_HEADER
/* */
/* <Description> */
/* An opaque handle to a cache node object. Each cache node is */
- /* reference-counted. A node with a count of 0 might be flushed */
+ /* reference-counted. A node with a count of~0 might be flushed */
/* out of a full cache whenever a lookup request is performed. */
/* */
/* If you lookup nodes, you have the ability to `acquire' them, i.e., */
@@ -279,19 +279,19 @@ FT_BEGIN_HEADER
/* FTC_Manager_New */
/* */
/* <Description> */
- /* Creates a new cache manager. */
+ /* Create a new cache manager. */
/* */
/* <Input> */
/* library :: The parent FreeType library handle to use. */
/* */
/* max_faces :: Maximum number of opened @FT_Face objects managed by */
- /* this cache instance. Use 0 for defaults. */
+ /* this cache instance. Use~0 for defaults. */
/* */
/* max_sizes :: Maximum number of opened @FT_Size objects managed by */
- /* this cache instance. Use 0 for defaults. */
+ /* this cache instance. Use~0 for defaults. */
/* */
/* max_bytes :: Maximum number of bytes to use for cached data nodes. */
- /* Use 0 for defaults. Note that this value does not */
+ /* Use~0 for defaults. Note that this value does not */
/* account for managed @FT_Face and @FT_Size objects. */
/* */
/* requester :: An application-provided callback used to translate */
@@ -301,11 +301,11 @@ FT_BEGIN_HEADER
/* each time it is called (see @FTC_Face_Requester). */
/* */
/* <Output> */
- /* amanager :: A handle to a new manager object. 0 in case of */
+ /* amanager :: A handle to a new manager object. 0~in case of */
/* failure. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FTC_Manager_New( FT_Library library,
@@ -323,7 +323,7 @@ FT_BEGIN_HEADER
/* FTC_Manager_Reset */
/* */
/* <Description> */
- /* Empties a given cache manager. This simply gets rid of all the */
+ /* Empty a given cache manager. This simply gets rid of all the */
/* currently cached @FT_Face and @FT_Size objects within the manager. */
/* */
/* <InOut> */
@@ -339,7 +339,7 @@ FT_BEGIN_HEADER
/* FTC_Manager_Done */
/* */
/* <Description> */
- /* Destroys a given manager after emptying it. */
+ /* Destroy a given manager after emptying it. */
/* */
/* <Input> */
/* manager :: A handle to the target cache manager object. */
@@ -354,7 +354,7 @@ FT_BEGIN_HEADER
/* FTC_Manager_LookupFace */
/* */
/* <Description> */
- /* Retrieves the @FT_Face object that corresponds to a given face ID */
+ /* Retrieve the @FT_Face object that corresponds to a given face ID */
/* through a cache manager. */
/* */
/* <Input> */
@@ -366,7 +366,7 @@ FT_BEGIN_HEADER
/* aface :: A handle to the face object. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* The returned @FT_Face object is always owned by the manager. You */
@@ -415,10 +415,10 @@ FT_BEGIN_HEADER
/* interpreted as integer pixel character sizes. */
/* Otherwise, they are expressed as 1/64th of points. */
/* */
- /* x_res :: Only used when `pixel' is value 0 to indicate the */
+ /* x_res :: Only used when `pixel' is value~0 to indicate the */
/* horizontal resolution in dpi. */
/* */
- /* y_res :: Only used when `pixel' is value 0 to indicate the */
+ /* y_res :: Only used when `pixel' is value~0 to indicate the */
/* vertical resolution in dpi. */
/* */
/* <Note> */
@@ -466,7 +466,7 @@ FT_BEGIN_HEADER
/* asize :: A handle to the size object. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* The returned @FT_Size object is always owned by the manager. You */
@@ -580,7 +580,7 @@ FT_BEGIN_HEADER
* A new cache handle. NULL in case of error.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* Like all other caches, this one will be destroyed with the cache
@@ -609,13 +609,14 @@ FT_BEGIN_HEADER
* The source face ID.
*
* cmap_index ::
- * The index of the charmap in the source face.
+ * The index of the charmap in the source face. Any negative value
+ * means to use the cache @FT_Face's default charmap.
*
* char_code ::
* The character code (in the corresponding charmap).
*
* @return:
- * Glyph index. 0 means `no glyph'.
+ * Glyph index. 0~means `no glyph'.
*
*/
FT_EXPORT( FT_UInt )
@@ -721,7 +722,7 @@ FT_BEGIN_HEADER
/* FTC_ImageCache_New */
/* */
/* <Description> */
- /* Creates a new glyph image cache. */
+ /* Create a new glyph image cache. */
/* */
/* <Input> */
/* manager :: The parent manager for the image cache. */
@@ -730,7 +731,7 @@ FT_BEGIN_HEADER
/* acache :: A handle to the new glyph image cache object. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FTC_ImageCache_New( FTC_Manager manager,
@@ -743,7 +744,7 @@ FT_BEGIN_HEADER
/* FTC_ImageCache_Lookup */
/* */
/* <Description> */
- /* Retrieves a given glyph image from a glyph image cache. */
+ /* Retrieve a given glyph image from a glyph image cache. */
/* */
/* <Input> */
/* cache :: A handle to the source glyph image cache. */
@@ -753,7 +754,7 @@ FT_BEGIN_HEADER
/* gindex :: The glyph index to retrieve. */
/* */
/* <Output> */
- /* aglyph :: The corresponding @FT_Glyph object. 0 in case of */
+ /* aglyph :: The corresponding @FT_Glyph object. 0~in case of */
/* failure. */
/* */
/* anode :: Used to return the address of of the corresponding cache */
@@ -761,7 +762,7 @@ FT_BEGIN_HEADER
/* below). */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* The returned glyph is owned and managed by the glyph image cache. */
@@ -806,7 +807,7 @@ FT_BEGIN_HEADER
/* gindex :: The glyph index to retrieve. */
/* */
/* <Output> */
- /* aglyph :: The corresponding @FT_Glyph object. 0 in case of */
+ /* aglyph :: The corresponding @FT_Glyph object. 0~in case of */
/* failure. */
/* */
/* anode :: Used to return the address of of the corresponding */
@@ -814,7 +815,7 @@ FT_BEGIN_HEADER
/* (see note below). */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* The returned glyph is owned and managed by the glyph image cache. */
@@ -832,6 +833,9 @@ FT_BEGIN_HEADER
/* call to one of the caching sub-system APIs. Don't assume that it */
/* is persistent! */
/* */
+ /* Calls to @FT_Set_Char_Size and friends have no effect on cached */
+ /* glyphs; you should always use the FreeType cache API instead. */
+ /* */
FT_EXPORT( FT_Error )
FTC_ImageCache_LookupScaler( FTC_ImageCache cache,
FTC_Scaler scaler,
@@ -873,11 +877,11 @@ FT_BEGIN_HEADER
/* top :: The vertical distance from the pen position (on the */
/* baseline) to the upper bitmap border (a.k.a. `top */
/* side bearing'). The distance is positive for upwards */
- /* Y coordinates. */
+ /* y~coordinates. */
/* */
/* format :: The format of the glyph bitmap (monochrome or gray). */
/* */
- /* max_grays :: Maximum gray level value (in the range 1 to 255). */
+ /* max_grays :: Maximum gray level value (in the range 1 to~255). */
/* */
/* pitch :: The number of bytes per bitmap line. May be positive */
/* or negative. */
@@ -926,7 +930,7 @@ FT_BEGIN_HEADER
/* FTC_SBitCache_New */
/* */
/* <Description> */
- /* Creates a new cache to store small glyph bitmaps. */
+ /* Create a new cache to store small glyph bitmaps. */
/* */
/* <Input> */
/* manager :: A handle to the source cache manager. */
@@ -935,7 +939,7 @@ FT_BEGIN_HEADER
/* acache :: A handle to the new sbit cache. NULL in case of error. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FTC_SBitCache_New( FTC_Manager manager,
@@ -948,7 +952,7 @@ FT_BEGIN_HEADER
/* FTC_SBitCache_Lookup */
/* */
/* <Description> */
- /* Looks up a given small glyph bitmap in a given sbit cache and */
+ /* Look up a given small glyph bitmap in a given sbit cache and */
/* `lock' it to prevent its flushing from the cache until needed. */
/* */
/* <Input> */
@@ -966,7 +970,7 @@ FT_BEGIN_HEADER
/* below). */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* The small bitmap descriptor and its bit buffer are owned by the */
@@ -974,7 +978,7 @@ FT_BEGIN_HEADER
/* as well disappear from memory on the next cache lookup, so don't */
/* treat them as persistent data. */
/* */
- /* The descriptor's `buffer' field is set to 0 to indicate a missing */
+ /* The descriptor's `buffer' field is set to~0 to indicate a missing */
/* glyph bitmap. */
/* */
/* If `anode' is _not_ NULL, it receives the address of the cache */
@@ -1021,7 +1025,7 @@ FT_BEGIN_HEADER
/* (see note below). */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* The small bitmap descriptor and its bit buffer are owned by the */
@@ -1029,7 +1033,7 @@ FT_BEGIN_HEADER
/* as well disappear from memory on the next cache lookup, so don't */
/* treat them as persistent data. */
/* */
- /* The descriptor's `buffer' field is set to 0 to indicate a missing */
+ /* The descriptor's `buffer' field is set to~0 to indicate a missing */
/* glyph bitmap. */
/* */
/* If `anode' is _not_ NULL, it receives the address of the cache */
diff --git a/include/freetype/ftchapters.h b/include/freetype/ftchapters.h
index 4c61824..7775a6b 100644
--- a/include/freetype/ftchapters.h
+++ b/include/freetype/ftchapters.h
@@ -90,6 +90,7 @@
/* computations */
/* list_processing */
/* outline_processing */
+/* quick_advance */
/* bitmap_handling */
/* raster */
/* glyph_stroker */
diff --git a/include/freetype/ftcid.h b/include/freetype/ftcid.h
index f0387f0..203a30c 100644
--- a/include/freetype/ftcid.h
+++ b/include/freetype/ftcid.h
@@ -4,7 +4,7 @@
/* */
/* FreeType API for accessing CID font information (specification). */
/* */
-/* Copyright 2007 by Dereg Clegg. */
+/* Copyright 2007, 2009 by Dereg Clegg, Michael Toftdal. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
@@ -64,16 +64,16 @@ FT_BEGIN_HEADER
*
* @output:
* registry ::
- * The registry, as a C string, owned by the face.
+ * The registry, as a C~string, owned by the face.
*
* ordering ::
- * The ordering, as a C string, owned by the face.
+ * The ordering, as a C~string, owned by the face.
*
* supplement ::
* The supplement.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* This function only works with CID faces, returning an error
@@ -88,6 +88,74 @@ FT_BEGIN_HEADER
const char* *ordering,
FT_Int *supplement);
+
+ /**********************************************************************
+ *
+ * @function:
+ * FT_Get_CID_Is_Internally_CID_Keyed
+ *
+ * @description:
+ * Retrieve the type of the input face, CID keyed or not. In
+ * constrast to the @FT_IS_CID_KEYED macro this function returns
+ * successfully also for CID-keyed fonts in an SNFT wrapper.
+ *
+ * @input:
+ * face ::
+ * A handle to the input face.
+ *
+ * @output:
+ * is_cid ::
+ * The type of the face as an @FT_Bool.
+ *
+ * @return:
+ * FreeType error code. 0~means success.
+ *
+ * @note:
+ * This function only works with CID faces and OpenType fonts,
+ * returning an error otherwise.
+ *
+ * @since:
+ * 2.3.9
+ */
+ FT_EXPORT( FT_Error )
+ FT_Get_CID_Is_Internally_CID_Keyed( FT_Face face,
+ FT_Bool *is_cid );
+
+
+ /**********************************************************************
+ *
+ * @function:
+ * FT_Get_CID_From_Glyph_Index
+ *
+ * @description:
+ * Retrieve the CID of the input glyph index.
+ *
+ * @input:
+ * face ::
+ * A handle to the input face.
+ *
+ * glyph_index ::
+ * The input glyph index.
+ *
+ * @output:
+ * cid ::
+ * The CID as an @FT_UInt.
+ *
+ * @return:
+ * FreeType error code. 0~means success.
+ *
+ * @note:
+ * This function only works with CID faces and OpenType fonts,
+ * returning an error otherwise.
+ *
+ * @since:
+ * 2.3.9
+ */
+ FT_EXPORT( FT_Error )
+ FT_Get_CID_From_Glyph_Index( FT_Face face,
+ FT_UInt glyph_index,
+ FT_UInt *cid );
+
/* */
FT_END_HEADER
diff --git a/include/freetype/ftgasp.h b/include/freetype/ftgasp.h
index 2692c31..91a769e 100644
--- a/include/freetype/ftgasp.h
+++ b/include/freetype/ftgasp.h
@@ -22,6 +22,13 @@
#include <ft2build.h>
#include FT_FREETYPE_H
+#ifdef FREETYPE_H
+#error "freetype.h of FreeType 1 has been loaded!"
+#error "Please fix the directory search order for header files"
+#error "so that freetype.h of FreeType 2 is found first."
+#endif
+
+
/***************************************************************************
*
* @section:
@@ -31,11 +38,11 @@
* Gasp Table
*
* @abstract:
- * Retrieving TrueType `gasp' table entries
+ * Retrieving TrueType `gasp' table entries.
*
* @description:
* The function @FT_Get_Gasp can be used to query a TrueType or OpenType
- * font for specific entries in their `gasp' table, if any. This is
+ * font for specific entries in its `gasp' table, if any. This is
* mainly useful when implementing native TrueType hinting with the
* bytecode interpreter to duplicate the Windows text rendering results.
*/
diff --git a/include/freetype/ftglyph.h b/include/freetype/ftglyph.h
index 832f49c..cacccf0 100644
--- a/include/freetype/ftglyph.h
+++ b/include/freetype/ftglyph.h
@@ -4,7 +4,7 @@
/* */
/* FreeType convenience functions to handle glyphs (specification). */
/* */
-/* Copyright 1996-2001, 2002, 2003, 2006 by */
+/* Copyright 1996-2001, 2002, 2003, 2006, 2008, 2009 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -145,7 +145,7 @@ FT_BEGIN_HEADER
/* */
/* top :: The top-side bearing, i.e., the vertical distance from */
/* the current pen position to the top border of the glyph */
- /* bitmap. This distance is positive for upwards-y! */
+ /* bitmap. This distance is positive for upwards~y! */
/* */
/* bitmap :: A descriptor for the bitmap. */
/* */
@@ -194,7 +194,7 @@ FT_BEGIN_HEADER
/* outline :: A descriptor for the outline. */
/* */
/* <Note> */
- /* You can typecast a @FT_Glyph to @FT_OutlineGlyph if you have */
+ /* You can typecast an @FT_Glyph to @FT_OutlineGlyph if you have */
/* `glyph->format == FT_GLYPH_FORMAT_OUTLINE'. This lets you access */
/* the outline's content easily. */
/* */
@@ -219,7 +219,8 @@ FT_BEGIN_HEADER
/* FT_Get_Glyph */
/* */
/* <Description> */
- /* A function used to extract a glyph image from a slot. */
+ /* A function used to extract a glyph image from a slot. Note that */
+ /* the created @FT_Glyph object must be released with @FT_Done_Glyph. */
/* */
/* <Input> */
/* slot :: A handle to the source glyph slot. */
@@ -228,7 +229,7 @@ FT_BEGIN_HEADER
/* aglyph :: A handle to the glyph object. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Get_Glyph( FT_GlyphSlot slot,
@@ -248,11 +249,11 @@ FT_BEGIN_HEADER
/* source :: A handle to the source glyph object. */
/* */
/* <Output> */
- /* target :: A handle to the target glyph object. 0 in case of */
+ /* target :: A handle to the target glyph object. 0~in case of */
/* error. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Glyph_Copy( FT_Glyph source,
@@ -265,7 +266,7 @@ FT_BEGIN_HEADER
/* FT_Glyph_Transform */
/* */
/* <Description> */
- /* Transforms a glyph image if its format is scalable. */
+ /* Transform a glyph image if its format is scalable. */
/* */
/* <InOut> */
/* glyph :: A handle to the target glyph object. */
@@ -375,7 +376,7 @@ FT_BEGIN_HEADER
/* expressed in 1/64th of pixels if it is grid-fitted. */
/* */
/* <Note> */
- /* Coordinates are relative to the glyph origin, using the Y-upwards */
+ /* Coordinates are relative to the glyph origin, using the y~upwards */
/* convention. */
/* */
/* If the glyph has been loaded with @FT_LOAD_NO_SCALE, `bbox_mode' */
@@ -421,17 +422,17 @@ FT_BEGIN_HEADER
/* FT_Glyph_To_Bitmap */
/* */
/* <Description> */
- /* Converts a given glyph object to a bitmap glyph object. */
+ /* Convert a given glyph object to a bitmap glyph object. */
/* */
/* <InOut> */
/* the_glyph :: A pointer to a handle to the target glyph. */
/* */
/* <Input> */
- /* render_mode :: An enumeration that describe how the data is */
+ /* render_mode :: An enumeration that describes how the data is */
/* rendered. */
/* */
/* origin :: A pointer to a vector used to translate the glyph */
- /* image before rendering. Can be 0 (if no */
+ /* image before rendering. Can be~0 (if no */
/* translation). The origin is expressed in */
/* 26.6 pixels. */
/* */
@@ -440,15 +441,17 @@ FT_BEGIN_HEADER
/* never destroyed in case of error. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
+ /* This function does nothing if the glyph format isn't scalable. */
+ /* */
/* The glyph image is translated with the `origin' vector before */
/* rendering. */
/* */
/* The first parameter is a pointer to an @FT_Glyph handle, that will */
- /* be replaced by this function. Typically, you would use (omitting */
- /* error handling): */
+ /* be _replaced_ by this function (with newly allocated data). */
+ /* Typically, you would use (omitting error handling): */
/* */
/* */
/* { */
@@ -462,12 +465,12 @@ FT_BEGIN_HEADER
/* // extract glyph image */
/* error = FT_Get_Glyph( face->glyph, &glyph ); */
/* */
- /* // convert to a bitmap (default render mode + destroy old) */
+ /* // convert to a bitmap (default render mode + destroying old) */
/* if ( glyph->format != FT_GLYPH_FORMAT_BITMAP ) */
/* { */
/* error = FT_Glyph_To_Bitmap( &glyph, FT_RENDER_MODE_DEFAULT, */
/* 0, 1 ); */
- /* if ( error ) // glyph unchanged */
+ /* if ( error ) // `glyph' unchanged */
/* ... */
/* } */
/* */
@@ -482,7 +485,42 @@ FT_BEGIN_HEADER
/* } */
/* */
/* */
- /* This function does nothing if the glyph format isn't scalable. */
+ /* Here another example, again without error handling: */
+ /* */
+ /* */
+ /* { */
+ /* FT_Glyph glyphs[MAX_GLYPHS] */
+ /* */
+ /* */
+ /* ... */
+ /* */
+ /* for ( idx = 0; i < MAX_GLYPHS; i++ ) */
+ /* error = FT_Load_Glyph( face, idx, FT_LOAD_DEFAULT ) || */
+ /* FT_Get_Glyph ( face->glyph, &glyph[idx] ); */
+ /* */
+ /* ... */
+ /* */
+ /* for ( idx = 0; i < MAX_GLYPHS; i++ ) */
+ /* { */
+ /* FT_Glyph bitmap = glyphs[idx]; */
+ /* */
+ /* */
+ /* ... */
+ /* */
+ /* // after this call, `bitmap' no longer points into */
+ /* // the `glyphs' array (and the old value isn't destroyed) */
+ /* FT_Glyph_To_Bitmap( &bitmap, FT_RENDER_MODE_MONO, 0, 0 ); */
+ /* */
+ /* ... */
+ /* */
+ /* FT_Done_Glyph( bitmap ); */
+ /* } */
+ /* */
+ /* ... */
+ /* */
+ /* for ( idx = 0; i < MAX_GLYPHS; i++ ) */
+ /* FT_Done_Glyph( glyphs[idx] ); */
+ /* } */
/* */
FT_EXPORT( FT_Error )
FT_Glyph_To_Bitmap( FT_Glyph* the_glyph,
@@ -497,7 +535,7 @@ FT_BEGIN_HEADER
/* FT_Done_Glyph */
/* */
/* <Description> */
- /* Destroys a given glyph. */
+ /* Destroy a given glyph. */
/* */
/* <Input> */
/* glyph :: A handle to the target glyph object. */
@@ -524,7 +562,7 @@ FT_BEGIN_HEADER
/* FT_Matrix_Multiply */
/* */
/* <Description> */
- /* Performs the matrix operation `b = a*b'. */
+ /* Perform the matrix operation `b = a*b'. */
/* */
/* <Input> */
/* a :: A pointer to matrix `a'. */
@@ -546,14 +584,14 @@ FT_BEGIN_HEADER
/* FT_Matrix_Invert */
/* */
/* <Description> */
- /* Inverts a 2x2 matrix. Returns an error if it can't be inverted. */
+ /* Invert a 2x2 matrix. Return an error if it can't be inverted. */
/* */
/* <InOut> */
/* matrix :: A pointer to the target matrix. Remains untouched in */
/* case of error. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Matrix_Invert( FT_Matrix* matrix );
diff --git a/include/freetype/ftgxval.h b/include/freetype/ftgxval.h
index c7ea861..497015c 100644
--- a/include/freetype/ftgxval.h
+++ b/include/freetype/ftgxval.h
@@ -202,7 +202,7 @@ FT_BEGIN_HEADER
* The array itself must be allocated by a client.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* This function only works with TrueTypeGX fonts, returning an error
@@ -285,14 +285,14 @@ FT_BEGIN_HEADER
* FT_ClassicKern_Validate
*
* @description:
- * Validate classic (16bit format) kern table to assure that the offsets
+ * Validate classic (16-bit format) kern table to assure that the offsets
* and indices are valid. The idea is that a higher-level library which
* actually does the text layout can access those tables without error
* checking (which can be quite time consuming).
*
* The `kern' table validator in @FT_TrueTypeGX_Validate deals with both
- * the new 32bit format and the classic 16bit format, while
- * FT_ClassicKern_Validate only supports the classic 16bit format.
+ * the new 32-bit format and the classic 16-bit format, while
+ * FT_ClassicKern_Validate only supports the classic 16-bit format.
*
* @input:
* face ::
@@ -307,7 +307,7 @@ FT_BEGIN_HEADER
* A pointer to the kern table.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* After use, the application should deallocate the buffers pointed to by
diff --git a/include/freetype/ftgzip.h b/include/freetype/ftgzip.h
index 9893437..acbc4f0 100644
--- a/include/freetype/ftgzip.h
+++ b/include/freetype/ftgzip.h
@@ -66,7 +66,7 @@ FT_BEGIN_HEADER
* The source stream.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* The source stream must be opened _before_ calling this function.
diff --git a/include/freetype/ftimage.h b/include/freetype/ftimage.h
index 56acb17..ccc2f71 100644
--- a/include/freetype/ftimage.h
+++ b/include/freetype/ftimage.h
@@ -53,7 +53,7 @@ FT_BEGIN_HEADER
/* <Description> */
/* The type FT_Pos is a 32-bit integer used to store vectorial */
/* coordinates. Depending on the context, these can represent */
- /* distances in integer font units, or 16,16, or 26.6 fixed float */
+ /* distances in integer font units, or 16.16, or 26.6 fixed float */
/* pixel coordinates. */
/* */
typedef signed long FT_Pos;
@@ -119,39 +119,40 @@ FT_BEGIN_HEADER
/* */
/* <Values> */
/* FT_PIXEL_MODE_NONE :: */
- /* Value 0 is reserved. */
+ /* Value~0 is reserved. */
/* */
/* FT_PIXEL_MODE_MONO :: */
- /* A monochrome bitmap, using 1 bit per pixel. Note that pixels */
+ /* A monochrome bitmap, using 1~bit per pixel. Note that pixels */
/* are stored in most-significant order (MSB), which means that */
/* the left-most pixel in a byte has value 128. */
/* */
/* FT_PIXEL_MODE_GRAY :: */
/* An 8-bit bitmap, generally used to represent anti-aliased glyph */
/* images. Each pixel is stored in one byte. Note that the number */
- /* of value `gray' levels is stored in the `num_bytes' field of */
- /* the @FT_Bitmap structure (it generally is 256). */
+ /* of `gray' levels is stored in the `num_grays' field of the */
+ /* @FT_Bitmap structure (it generally is 256). */
/* */
/* FT_PIXEL_MODE_GRAY2 :: */
- /* A 2-bit/pixel bitmap, used to represent embedded anti-aliased */
- /* bitmaps in font files according to the OpenType specification. */
- /* We haven't found a single font using this format, however. */
+ /* A 2-bit per pixel bitmap, used to represent embedded */
+ /* anti-aliased bitmaps in font files according to the OpenType */
+ /* specification. We haven't found a single font using this */
+ /* format, however. */
/* */
/* FT_PIXEL_MODE_GRAY4 :: */
- /* A 4-bit/pixel bitmap, used to represent embedded anti-aliased */
+ /* A 4-bit per pixel bitmap, representing embedded anti-aliased */
/* bitmaps in font files according to the OpenType specification. */
/* We haven't found a single font using this format, however. */
/* */
/* FT_PIXEL_MODE_LCD :: */
- /* An 8-bit bitmap, used to represent RGB or BGR decimated glyph */
- /* images used for display on LCD displays; the bitmap is three */
- /* times wider than the original glyph image. See also */
+ /* An 8-bit bitmap, representing RGB or BGR decimated glyph images */
+ /* used for display on LCD displays; the bitmap is three times */
+ /* wider than the original glyph image. See also */
/* @FT_RENDER_MODE_LCD. */
/* */
/* FT_PIXEL_MODE_LCD_V :: */
- /* An 8-bit bitmap, used to represent RGB or BGR decimated glyph */
- /* images used for display on rotated LCD displays; the bitmap */
- /* is three times taller than the original glyph image. See also */
+ /* An 8-bit bitmap, representing RGB or BGR decimated glyph images */
+ /* used for display on rotated LCD displays; the bitmap is three */
+ /* times taller than the original glyph image. See also */
/* @FT_RENDER_MODE_LCD_V. */
/* */
typedef enum FT_Pixel_Mode_
@@ -207,10 +208,10 @@ FT_BEGIN_HEADER
/* used with ft_pixel_mode_pal4 and ft_pixel_mode_pal8. */
/* */
/* <Values> */
- /* ft_palette_mode_rgb :: The palette is an array of 3-bytes RGB */
+ /* ft_palette_mode_rgb :: The palette is an array of 3-byte RGB */
/* records. */
/* */
- /* ft_palette_mode_rgba :: The palette is an array of 4-bytes RGBA */
+ /* ft_palette_mode_rgba :: The palette is an array of 4-byte RGBA */
/* records. */
/* */
/* <Note> */
@@ -317,11 +318,11 @@ FT_BEGIN_HEADER
/* elements, giving the outline's point coordinates. */
/* */
/* tags :: A pointer to an array of `n_points' chars, giving */
- /* each outline point's type. If bit 0 is unset, the */
+ /* each outline point's type. If bit~0 is unset, the */
/* point is `off' the curve, i.e., a Bézier control */
/* point, while it is `on' when set. */
/* */
- /* Bit 1 is meaningful for `off' points only. If set, */
+ /* Bit~1 is meaningful for `off' points only. If set, */
/* it indicates a third-order Bézier arc control point; */
/* and a second-order control point if unset. */
/* */
@@ -352,67 +353,73 @@ FT_BEGIN_HEADER
/*************************************************************************/
/* */
/* <Enum> */
- /* FT_OUTLINE_FLAGS */
+ /* FT_OUTLINE_FLAGS */
/* */
/* <Description> */
/* A list of bit-field constants use for the flags in an outline's */
/* `flags' field. */
/* */
/* <Values> */
- /* FT_OUTLINE_NONE :: Value 0 is reserved. */
- /* */
- /* FT_OUTLINE_OWNER :: If set, this flag indicates that the */
- /* outline's field arrays (i.e., */
- /* `points', `flags' & `contours') are */
- /* `owned' by the outline object, and */
- /* should thus be freed when it is */
- /* destroyed. */
- /* */
- /* FT_OUTLINE_EVEN_ODD_FILL :: By default, outlines are filled using */
- /* the non-zero winding rule. If set to */
- /* 1, the outline will be filled using */
- /* the even-odd fill rule (only works */
- /* with the smooth raster). */
- /* */
- /* FT_OUTLINE_REVERSE_FILL :: By default, outside contours of an */
- /* outline are oriented in clock-wise */
- /* direction, as defined in the TrueType */
- /* specification. This flag is set if */
- /* the outline uses the opposite */
- /* direction (typically for Type 1 */
- /* fonts). This flag is ignored by the */
- /* scan-converter. */
- /* */
- /* FT_OUTLINE_IGNORE_DROPOUTS :: By default, the scan converter will */
- /* try to detect drop-outs in an outline */
- /* and correct the glyph bitmap to */
- /* ensure consistent shape continuity. */
- /* If set, this flag hints the scan-line */
- /* converter to ignore such cases. */
- /* */
- /* FT_OUTLINE_HIGH_PRECISION :: This flag indicates that the */
- /* scan-line converter should try to */
- /* convert this outline to bitmaps with */
- /* the highest possible quality. It is */
- /* typically set for small character */
- /* sizes. Note that this is only a */
- /* hint, that might be completely */
- /* ignored by a given scan-converter. */
- /* */
- /* FT_OUTLINE_SINGLE_PASS :: This flag is set to force a given */
- /* scan-converter to only use a single */
- /* pass over the outline to render a */
- /* bitmap glyph image. Normally, it is */
- /* set for very large character sizes. */
- /* It is only a hint, that might be */
- /* completely ignored by a given */
- /* scan-converter. */
+ /* FT_OUTLINE_NONE :: */
+ /* Value~0 is reserved. */
+ /* */
+ /* FT_OUTLINE_OWNER :: */
+ /* If set, this flag indicates that the outline's field arrays */
+ /* (i.e., `points', `flags', and `contours') are `owned' by the */
+ /* outline object, and should thus be freed when it is destroyed. */
+ /* */
+ /* FT_OUTLINE_EVEN_ODD_FILL :: */
+ /* By default, outlines are filled using the non-zero winding rule. */
+ /* If set to 1, the outline will be filled using the even-odd fill */
+ /* rule (only works with the smooth raster). */
+ /* */
+ /* FT_OUTLINE_REVERSE_FILL :: */
+ /* By default, outside contours of an outline are oriented in */
+ /* clock-wise direction, as defined in the TrueType specification. */
+ /* This flag is set if the outline uses the opposite direction */
+ /* (typically for Type~1 fonts). This flag is ignored by the scan */
+ /* converter. */
+ /* */
+ /* FT_OUTLINE_IGNORE_DROPOUTS :: */
+ /* By default, the scan converter will try to detect drop-outs in */
+ /* an outline and correct the glyph bitmap to ensure consistent */
+ /* shape continuity. If set, this flag hints the scan-line */
+ /* converter to ignore such cases. */
+ /* */
+ /* FT_OUTLINE_SMART_DROPOUTS :: */
+ /* Select smart dropout control. If unset, use simple dropout */
+ /* control. Ignored if @FT_OUTLINE_IGNORE_DROPOUTS is set. */
+ /* */
+ /* FT_OUTLINE_INCLUDE_STUBS :: */
+ /* If set, turn pixels on for `stubs', otherwise exclude them. */
+ /* Ignored if @FT_OUTLINE_IGNORE_DROPOUTS is set. */
+ /* */
+ /* FT_OUTLINE_HIGH_PRECISION :: */
+ /* This flag indicates that the scan-line converter should try to */
+ /* convert this outline to bitmaps with the highest possible */
+ /* quality. It is typically set for small character sizes. Note */
+ /* that this is only a hint that might be completely ignored by a */
+ /* given scan-converter. */
+ /* */
+ /* FT_OUTLINE_SINGLE_PASS :: */
+ /* This flag is set to force a given scan-converter to only use a */
+ /* single pass over the outline to render a bitmap glyph image. */
+ /* Normally, it is set for very large character sizes. It is only */
+ /* a hint that might be completely ignored by a given */
+ /* scan-converter. */
+ /* */
+ /* <Note> */
+ /* Please refer to the description of the `SCANTYPE' instruction in */
+ /* the OpenType specification (in file `ttinst1.doc') how simple */
+ /* drop-outs, smart drop-outs, and stubs are defined. */
/* */
#define FT_OUTLINE_NONE 0x0
#define FT_OUTLINE_OWNER 0x1
#define FT_OUTLINE_EVEN_ODD_FILL 0x2
#define FT_OUTLINE_REVERSE_FILL 0x4
#define FT_OUTLINE_IGNORE_DROPOUTS 0x8
+#define FT_OUTLINE_SMART_DROPOUTS 0x10
+#define FT_OUTLINE_INCLUDE_STUBS 0x20
#define FT_OUTLINE_HIGH_PRECISION 0x100
#define FT_OUTLINE_SINGLE_PASS 0x200
@@ -483,7 +490,7 @@ FT_BEGIN_HEADER
/* decomposition function. */
/* */
/* <Return> */
- /* Error code. 0 means success. */
+ /* Error code. 0~means success. */
/* */
typedef int
(*FT_Outline_MoveToFunc)( const FT_Vector* to,
@@ -510,7 +517,7 @@ FT_BEGIN_HEADER
/* decomposition function. */
/* */
/* <Return> */
- /* Error code. 0 means success. */
+ /* Error code. 0~means success. */
/* */
typedef int
(*FT_Outline_LineToFunc)( const FT_Vector* to,
@@ -541,7 +548,7 @@ FT_BEGIN_HEADER
/* the decomposition function. */
/* */
/* <Return> */
- /* Error code. 0 means success. */
+ /* Error code. 0~means success. */
/* */
typedef int
(*FT_Outline_ConicToFunc)( const FT_Vector* control,
@@ -573,7 +580,7 @@ FT_BEGIN_HEADER
/* the decomposition function. */
/* */
/* <Return> */
- /* Error code. 0 means success. */
+ /* Error code. 0~means success. */
/* */
typedef int
(*FT_Outline_CubicToFunc)( const FT_Vector* control1,
@@ -619,7 +626,7 @@ FT_BEGIN_HEADER
/* y' = (x << shift) - delta */
/* } */
/* */
- /* Set the value of `shift' and `delta' to 0 to get the original */
+ /* Set the value of `shift' and `delta' to~0 to get the original */
/* point coordinates. */
/* */
typedef struct FT_Outline_Funcs_
@@ -652,7 +659,7 @@ FT_BEGIN_HEADER
/* This macro converts four-letter tags to an unsigned long type. */
/* */
/* <Note> */
- /* Since many 16bit compilers don't like 32bit enumerations, you */
+ /* Since many 16-bit compilers don't like 32-bit enumerations, you */
/* should redefine this macro in case of problems to something like */
/* this: */
/* */
@@ -684,7 +691,7 @@ FT_BEGIN_HEADER
/* */
/* <Values> */
/* FT_GLYPH_FORMAT_NONE :: */
- /* The value 0 is reserved. */
+ /* The value~0 is reserved. */
/* */
/* FT_GLYPH_FORMAT_COMPOSITE :: */
/* The glyph image is a composite of several other images. This */
@@ -704,7 +711,7 @@ FT_BEGIN_HEADER
/* */
/* FT_GLYPH_FORMAT_PLOTTER :: */
/* The glyph image is a vectorial path with no inside and outside */
- /* contours. Some Type 1 fonts, like those in the Hershey family, */
+ /* contours. Some Type~1 fonts, like those in the Hershey family, */
/* contain glyphs in this format. These are described as */
/* @FT_Outline, but FreeType isn't currently capable of rendering */
/* them correctly. */
@@ -816,10 +823,11 @@ FT_BEGIN_HEADER
/* */
/* <Note> */
/* This structure is used by the span drawing callback type named */
- /* @FT_SpanFunc which takes the y-coordinate of the span as a */
+ /* @FT_SpanFunc which takes the y~coordinate of the span as a */
/* a parameter. */
/* */
- /* The coverage value is always between 0 and 255. */
+ /* The coverage value is always between 0 and 255. If you want less */
+ /* gray values, the callback function has to reduce them. */
/* */
typedef struct FT_Span_
{
@@ -841,7 +849,7 @@ FT_BEGIN_HEADER
/* spans on each scan line. */
/* */
/* <Input> */
- /* y :: The scanline's y-coordinate. */
+ /* y :: The scanline's y~coordinate. */
/* */
/* count :: The number of spans to draw on this scanline. */
/* */
@@ -858,8 +866,8 @@ FT_BEGIN_HEADER
/* */
/* Note that the `count' field cannot be greater than a fixed value */
/* defined by the `FT_MAX_GRAY_SPANS' configuration macro in */
- /* `ftoption.h'. By default, this value is set to 32, which means */
- /* that if there are more than 32 spans on a given scanline, the */
+ /* `ftoption.h'. By default, this value is set to~32, which means */
+ /* that if there are more than 32~spans on a given scanline, the */
/* callback is called several times with the same `y' parameter in */
/* order to draw all callbacks. */
/* */
@@ -889,14 +897,14 @@ FT_BEGIN_HEADER
/* per-se the TrueType spec. */
/* */
/* <Input> */
- /* y :: The pixel's y-coordinate. */
+ /* y :: The pixel's y~coordinate. */
/* */
- /* x :: The pixel's x-coordinate. */
+ /* x :: The pixel's x~coordinate. */
/* */
/* user :: User-supplied data that is passed to the callback. */
/* */
/* <Return> */
- /* 1 if the pixel is `set', 0 otherwise. */
+ /* 1~if the pixel is `set', 0~otherwise. */
/* */
typedef int
(*FT_Raster_BitTest_Func)( int y,
@@ -917,14 +925,14 @@ FT_BEGIN_HEADER
/* drop-out control according to the TrueType specification. */
/* */
/* <Input> */
- /* y :: The pixel's y-coordinate. */
+ /* y :: The pixel's y~coordinate. */
/* */
- /* x :: The pixel's x-coordinate. */
+ /* x :: The pixel's x~coordinate. */
/* */
/* user :: User-supplied data that is passed to the callback. */
/* */
/* <Return> */
- /* 1 if the pixel is `set', 0 otherwise. */
+ /* 1~if the pixel is `set', 0~otherwise. */
/* */
typedef void
(*FT_Raster_BitSet_Func)( int y,
@@ -1064,7 +1072,7 @@ FT_BEGIN_HEADER
/* raster :: A handle to the new raster object. */
/* */
/* <Return> */
- /* Error code. 0 means success. */
+ /* Error code. 0~means success. */
/* */
/* <Note> */
/* The `memory' parameter is a typeless pointer in order to avoid */
@@ -1164,8 +1172,8 @@ FT_BEGIN_HEADER
/* FT_Raster_RenderFunc */
/* */
/* <Description> */
- /* Invokes a given raster to scan-convert a given glyph image into a */
- /* target bitmap. */
+ /* Invoke a given raster to scan-convert a given glyph image into a */
+ /* target bitmap. */
/* */
/* <Input> */
/* raster :: A handle to the raster object. */
@@ -1174,7 +1182,7 @@ FT_BEGIN_HEADER
/* store the rendering parameters. */
/* */
/* <Return> */
- /* Error code. 0 means success. */
+ /* Error code. 0~means success. */
/* */
/* <Note> */
/* The exact format of the source image depends on the raster's glyph */
diff --git a/include/freetype/ftincrem.h b/include/freetype/ftincrem.h
index 6dd2f55..96abede 100644
--- a/include/freetype/ftincrem.h
+++ b/include/freetype/ftincrem.h
@@ -49,7 +49,7 @@ FT_BEGIN_HEADER
*
* Apart from that, all other tables are loaded normally from the font
* file. This mode is useful when FreeType is used within another
- * engine, e.g., a Postscript Imaging Processor.
+ * engine, e.g., a PostScript Imaging Processor.
*
* To enable this mode, you must use @FT_Open_Face, passing an
* @FT_Parameter with the @FT_PARAM_TAG_INCREMENTAL tag and an
@@ -67,7 +67,7 @@ FT_BEGIN_HEADER
* @description:
* An opaque type describing a user-provided object used to implement
* `incremental' glyph loading within FreeType. This is used to support
- * embedded fonts in certain environments (e.g., Postscript interpreters),
+ * embedded fonts in certain environments (e.g., PostScript interpreters),
* where the glyph data isn't in the font file, or must be overridden by
* different values.
*
@@ -142,7 +142,7 @@ FT_BEGIN_HEADER
*
* Note that the format of the glyph's data bytes depends on the font
* file format. For TrueType, it must correspond to the raw bytes within
- * the `glyf' table. For Postscript formats, it must correspond to the
+ * the `glyf' table. For PostScript formats, it must correspond to the
* *unencrypted* charstring bytes, without any `lenIV' header. It is
* undefined for any other format.
*
@@ -160,7 +160,7 @@ FT_BEGIN_HEADER
* accessed as a read-only byte block).
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* If this function returns successfully the method
diff --git a/include/freetype/ftlcdfil.h b/include/freetype/ftlcdfil.h
index 01d9780..c6201b3 100644
--- a/include/freetype/ftlcdfil.h
+++ b/include/freetype/ftlcdfil.h
@@ -23,6 +23,12 @@
#include <ft2build.h>
#include FT_FREETYPE_H
+#ifdef FREETYPE_H
+#error "freetype.h of FreeType 1 has been loaded!"
+#error "Please fix the directory search order for header files"
+#error "so that freetype.h of FreeType 2 is found first."
+#endif
+
FT_BEGIN_HEADER
@@ -119,7 +125,7 @@ FT_BEGIN_HEADER
* well on most LCD screens.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* This feature is always disabled by default. Clients must make an
@@ -141,8 +147,8 @@ FT_BEGIN_HEADER
* If this feature is activated, the dimensions of LCD glyph bitmaps are
* either larger or taller than the dimensions of the corresponding
* outline with regards to the pixel grid. For example, for
- * @FT_RENDER_MODE_LCD, the filter adds up to 3 pixels to the left, and
- * up to 3 pixels to the right.
+ * @FT_RENDER_MODE_LCD, the filter adds up to 3~pixels to the left, and
+ * up to 3~pixels to the right.
*
* The bitmap offset values are adjusted correctly, so clients shouldn't
* need to modify their layout and glyph positioning code when enabling
diff --git a/include/freetype/ftlist.h b/include/freetype/ftlist.h
index f3223ee..93b05fc 100644
--- a/include/freetype/ftlist.h
+++ b/include/freetype/ftlist.h
@@ -81,7 +81,7 @@ FT_BEGIN_HEADER
/* FT_List_Find */
/* */
/* <Description> */
- /* Finds the list node for a given listed object. */
+ /* Find the list node for a given listed object. */
/* */
/* <Input> */
/* list :: A pointer to the parent list. */
@@ -101,7 +101,7 @@ FT_BEGIN_HEADER
/* FT_List_Add */
/* */
/* <Description> */
- /* Appends an element to the end of a list. */
+ /* Append an element to the end of a list. */
/* */
/* <InOut> */
/* list :: A pointer to the parent list. */
@@ -118,7 +118,7 @@ FT_BEGIN_HEADER
/* FT_List_Insert */
/* */
/* <Description> */
- /* Inserts an element at the head of a list. */
+ /* Insert an element at the head of a list. */
/* */
/* <InOut> */
/* list :: A pointer to parent list. */
@@ -135,7 +135,7 @@ FT_BEGIN_HEADER
/* FT_List_Remove */
/* */
/* <Description> */
- /* Removes a node from a list. This function doesn't check whether */
+ /* Remove a node from a list. This function doesn't check whether */
/* the node is in the list! */
/* */
/* <Input> */
@@ -155,7 +155,7 @@ FT_BEGIN_HEADER
/* FT_List_Up */
/* */
/* <Description> */
- /* Moves a node to the head/top of a list. Used to maintain LRU */
+ /* Move a node to the head/top of a list. Used to maintain LRU */
/* lists. */
/* */
/* <InOut> */
@@ -193,7 +193,7 @@ FT_BEGIN_HEADER
/* FT_List_Iterate */
/* */
/* <Description> */
- /* Parses a list and calls a given iterator function on each element. */
+ /* Parse a list and calls a given iterator function on each element. */
/* Note that parsing is stopped as soon as one of the iterator calls */
/* returns a non-zero value. */
/* */
@@ -242,7 +242,7 @@ FT_BEGIN_HEADER
/* FT_List_Finalize */
/* */
/* <Description> */
- /* Destroys all elements in the list as well as the list itself. */
+ /* Destroy all elements in the list as well as the list itself. */
/* */
/* <Input> */
/* list :: A handle to the list. */
diff --git a/include/freetype/ftlzw.h b/include/freetype/ftlzw.h
index d950653..00d4016 100644
--- a/include/freetype/ftlzw.h
+++ b/include/freetype/ftlzw.h
@@ -63,7 +63,7 @@ FT_BEGIN_HEADER
* source :: The source stream.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* The source stream must be opened _before_ calling this function.
diff --git a/include/freetype/ftmac.h b/include/freetype/ftmac.h
index 1752d13..ab5bab5 100644
--- a/include/freetype/ftmac.h
+++ b/include/freetype/ftmac.h
@@ -85,7 +85,7 @@ FT_BEGIN_HEADER
/* aface :: A handle to a new face object. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Notes> */
/* This function can be used to create @FT_Face objects from fonts */
@@ -124,7 +124,7 @@ FT_BEGIN_HEADER
/* @FT_New_Face_From_FSSpec. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_GetFile_From_Mac_Name( const char* fontName,
@@ -152,7 +152,7 @@ FT_BEGIN_HEADER
/* @FT_New_Face_From_FSSpec. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_GetFile_From_Mac_ATS_Name( const char* fontName,
@@ -183,7 +183,7 @@ FT_BEGIN_HEADER
/* face_index :: Index of the face. For passing to @FT_New_Face. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_GetFilePath_From_Mac_ATS_Name( const char* fontName,
@@ -209,12 +209,12 @@ FT_BEGIN_HEADER
/* spec :: FSSpec to the font file. */
/* */
/* face_index :: The index of the face within the resource. The */
- /* first face has index 0. */
+ /* first face has index~0. */
/* <Output> */
/* aface :: A handle to a new face object. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* @FT_New_Face_From_FSSpec is identical to @FT_New_Face except */
@@ -244,12 +244,12 @@ FT_BEGIN_HEADER
/* spec :: FSRef to the font file. */
/* */
/* face_index :: The index of the face within the resource. The */
- /* first face has index 0. */
+ /* first face has index~0. */
/* <Output> */
/* aface :: A handle to a new face object. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* @FT_New_Face_From_FSRef is identical to @FT_New_Face except */
diff --git a/include/freetype/ftmm.h b/include/freetype/ftmm.h
index a9ccfe7..3aefb9e 100644
--- a/include/freetype/ftmm.h
+++ b/include/freetype/ftmm.h
@@ -4,7 +4,7 @@
/* */
/* FreeType Multiple Master font interface (specification). */
/* */
-/* Copyright 1996-2001, 2003, 2004, 2006 by */
+/* Copyright 1996-2001, 2003, 2004, 2006, 2009 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -44,7 +44,7 @@ FT_BEGIN_HEADER
/* setting design axis coordinates. */
/* */
/* George Williams has extended this interface to make it work with */
- /* both Type 1 Multiple Masters fonts and GX distortable (var) */
+ /* both Type~1 Multiple Masters fonts and GX distortable (var) */
/* fonts. Some of these routines only work with MM fonts, others */
/* will work with both types. They are similar enough that a */
/* consistent interface makes sense. */
@@ -91,12 +91,12 @@ FT_BEGIN_HEADER
/* This structure can't be used for GX var fonts. */
/* */
/* <Fields> */
- /* num_axis :: Number of axes. Cannot exceed 4. */
+ /* num_axis :: Number of axes. Cannot exceed~4. */
/* */
/* num_designs :: Number of designs; should be normally 2^num_axis */
- /* even though the Type 1 specification strangely */
+ /* even though the Type~1 specification strangely */
/* allows for intermediate designs to be present. This */
- /* number cannot exceed 16. */
+ /* number cannot exceed~16. */
/* */
/* axis :: A table of axis descriptors. */
/* */
@@ -187,7 +187,7 @@ FT_BEGIN_HEADER
/* Some fields are specific to one format and not to the other. */
/* */
/* <Fields> */
- /* num_axis :: The number of axes. The maximum value is 4 for */
+ /* num_axis :: The number of axes. The maximum value is~4 for */
/* MM; no limit in GX. */
/* */
/* num_designs :: The number of designs; should be normally */
@@ -227,7 +227,7 @@ FT_BEGIN_HEADER
/* FT_Get_Multi_Master */
/* */
/* <Description> */
- /* Retrieves the Multiple Master descriptor of a given font. */
+ /* Retrieve the Multiple Master descriptor of a given font. */
/* */
/* This function can't be used with GX fonts. */
/* */
@@ -238,7 +238,7 @@ FT_BEGIN_HEADER
/* amaster :: The Multiple Masters descriptor. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Get_Multi_Master( FT_Face face,
@@ -251,18 +251,18 @@ FT_BEGIN_HEADER
/* FT_Get_MM_Var */
/* */
/* <Description> */
- /* Retrieves the Multiple Master/GX var descriptor of a given font. */
+ /* Retrieve the Multiple Master/GX var descriptor of a given font. */
/* */
/* <Input> */
/* face :: A handle to the source face. */
/* */
/* <Output> */
- /* amaster :: The Multiple Masters descriptor. */
+ /* amaster :: The Multiple Masters/GX var descriptor. */
/* Allocates a data structure, which the user must free */
/* (a single call to FT_FREE will do it). */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Get_MM_Var( FT_Face face,
@@ -290,7 +290,7 @@ FT_BEGIN_HEADER
/* coords :: An array of design coordinates. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Set_MM_Design_Coordinates( FT_Face face,
@@ -317,7 +317,7 @@ FT_BEGIN_HEADER
/* coords :: An array of design coordinates. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Set_Var_Design_Coordinates( FT_Face face,
@@ -345,7 +345,7 @@ FT_BEGIN_HEADER
/* between 0 and 1.0). */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Set_MM_Blend_Coordinates( FT_Face face,
diff --git a/include/freetype/ftmodapi.h b/include/freetype/ftmodapi.h
index 7d813eb..b051d34 100644
--- a/include/freetype/ftmodapi.h
+++ b/include/freetype/ftmodapi.h
@@ -179,7 +179,7 @@ FT_BEGIN_HEADER
/* FT_Add_Module */
/* */
/* <Description> */
- /* Adds a new module to a given library instance. */
+ /* Add a new module to a given library instance. */
/* */
/* <InOut> */
/* library :: A handle to the library object. */
@@ -188,7 +188,7 @@ FT_BEGIN_HEADER
/* clazz :: A pointer to class descriptor for the module. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* An error will be returned if a module already exists by that name, */
@@ -205,7 +205,7 @@ FT_BEGIN_HEADER
/* FT_Get_Module */
/* */
/* <Description> */
- /* Finds a module by its name. */
+ /* Find a module by its name. */
/* */
/* <Input> */
/* library :: A handle to the library object. */
@@ -213,7 +213,7 @@ FT_BEGIN_HEADER
/* module_name :: The module's name (as an ASCII string). */
/* */
/* <Return> */
- /* A module handle. 0 if none was found. */
+ /* A module handle. 0~if none was found. */
/* */
/* <Note> */
/* FreeType's internal modules aren't documented very well, and you */
@@ -230,7 +230,7 @@ FT_BEGIN_HEADER
/* FT_Remove_Module */
/* */
/* <Description> */
- /* Removes a given module from a library instance. */
+ /* Remove a given module from a library instance. */
/* */
/* <InOut> */
/* library :: A handle to a library object. */
@@ -239,7 +239,7 @@ FT_BEGIN_HEADER
/* module :: A handle to a module object. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* The module object is destroyed by the function in case of success. */
@@ -266,7 +266,7 @@ FT_BEGIN_HEADER
/* alibrary :: A pointer to handle of a new library object. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_New_Library( FT_Memory memory,
@@ -279,14 +279,14 @@ FT_BEGIN_HEADER
/* FT_Done_Library */
/* */
/* <Description> */
- /* Discards a given library object. This closes all drivers and */
+ /* Discard a given library object. This closes all drivers and */
/* discards all resource objects. */
/* */
/* <Input> */
/* library :: A handle to the target library. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Done_Library( FT_Library library );
@@ -303,7 +303,7 @@ FT_BEGIN_HEADER
/* FT_Set_Debug_Hook */
/* */
/* <Description> */
- /* Sets a debug hook function for debugging the interpreter of a font */
+ /* Set a debug hook function for debugging the interpreter of a font */
/* format. */
/* */
/* <InOut> */
@@ -318,7 +318,7 @@ FT_BEGIN_HEADER
/* */
/* <Note> */
/* Currently, four debug hook slots are available, but only two (for */
- /* the TrueType and the Type 1 interpreter) are defined. */
+ /* the TrueType and the Type~1 interpreter) are defined. */
/* */
/* Since the internal headers of FreeType are no longer installed, */
/* the symbol `FT_DEBUG_HOOK_TRUETYPE' isn't available publicly. */
@@ -336,7 +336,7 @@ FT_BEGIN_HEADER
/* FT_Add_Default_Modules */
/* */
/* <Description> */
- /* Adds the set of default drivers to a given library object. */
+ /* Add the set of default drivers to a given library object. */
/* This is only useful when you create a library object with */
/* @FT_New_Library (usually to plug a custom memory manager). */
/* */
@@ -412,7 +412,7 @@ FT_BEGIN_HEADER
* FT_Get_TrueType_Engine_Type
*
* @description:
- * Return a @FT_TrueTypeEngineType value to indicate which level of
+ * Return an @FT_TrueTypeEngineType value to indicate which level of
* the TrueType virtual machine a given library instance supports.
*
* @input:
diff --git a/include/freetype/ftotval.h b/include/freetype/ftotval.h
index 8733882..027f2e8 100644
--- a/include/freetype/ftotval.h
+++ b/include/freetype/ftotval.h
@@ -145,7 +145,7 @@ FT_BEGIN_HEADER
* A pointer to the JSTF table.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* This function only works with OpenType fonts, returning an error
diff --git a/include/freetype/ftoutln.h b/include/freetype/ftoutln.h
index 873e64b..d7d01e8 100644
--- a/include/freetype/ftoutln.h
+++ b/include/freetype/ftoutln.h
@@ -5,7 +5,7 @@
/* Support for the FT_Outline type used to store glyph shapes of */
/* most scalable font formats (specification). */
/* */
-/* Copyright 1996-2001, 2002, 2003, 2005, 2006, 2007, 2008 by */
+/* Copyright 1996-2001, 2002, 2003, 2005, 2006, 2007, 2008, 2009 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -84,7 +84,7 @@ FT_BEGIN_HEADER
/* FT_Outline_Decompose */
/* */
/* <Description> */
- /* Walks over an outline's structure to decompose it into individual */
+ /* Walk over an outline's structure to decompose it into individual */
/* segments and Bézier arcs. This function is also able to emit */
/* `move to' and `close to' operations to indicate the start and end */
/* of new contours in the outline. */
@@ -92,7 +92,7 @@ FT_BEGIN_HEADER
/* <Input> */
/* outline :: A pointer to the source target. */
/* */
- /* func_interface :: A table of `emitters', i.e,. function pointers */
+ /* func_interface :: A table of `emitters', i.e., function pointers */
/* called during decomposition to indicate path */
/* operations. */
/* */
@@ -103,7 +103,7 @@ FT_BEGIN_HEADER
/* decomposition. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Outline_Decompose( FT_Outline* outline,
@@ -117,7 +117,7 @@ FT_BEGIN_HEADER
/* FT_Outline_New */
/* */
/* <Description> */
- /* Creates a new outline of a given size. */
+ /* Create a new outline of a given size. */
/* */
/* <Input> */
/* library :: A handle to the library object from where the */
@@ -130,11 +130,10 @@ FT_BEGIN_HEADER
/* numContours :: The maximal number of contours within the outline. */
/* */
/* <Output> */
- /* anoutline :: A handle to the new outline. NULL in case of */
- /* error. */
+ /* anoutline :: A handle to the new outline. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* The reason why this function takes a `library' parameter is simply */
@@ -160,7 +159,7 @@ FT_BEGIN_HEADER
/* FT_Outline_Done */
/* */
/* <Description> */
- /* Destroys an outline created with @FT_Outline_New. */
+ /* Destroy an outline created with @FT_Outline_New. */
/* */
/* <Input> */
/* library :: A handle of the library object used to allocate the */
@@ -169,7 +168,7 @@ FT_BEGIN_HEADER
/* outline :: A pointer to the outline object to be discarded. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* If the outline's `owner' field is not set, only the outline */
@@ -200,7 +199,7 @@ FT_BEGIN_HEADER
/* outline :: A handle to a source outline. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Outline_Check( FT_Outline* outline );
@@ -212,7 +211,7 @@ FT_BEGIN_HEADER
/* FT_Outline_Get_CBox */
/* */
/* <Description> */
- /* Returns an outline's `control box'. The control box encloses all */
+ /* Return an outline's `control box'. The control box encloses all */
/* the outline's points, including Bézier control points. Though it */
/* coincides with the exact bounding box for most glyphs, it can be */
/* slightly larger in some situations (like when rotating an outline */
@@ -240,7 +239,7 @@ FT_BEGIN_HEADER
/* FT_Outline_Translate */
/* */
/* <Description> */
- /* Applies a simple translation to the points of an outline. */
+ /* Apply a simple translation to the points of an outline. */
/* */
/* <InOut> */
/* outline :: A pointer to the target outline descriptor. */
@@ -262,7 +261,7 @@ FT_BEGIN_HEADER
/* FT_Outline_Copy */
/* */
/* <Description> */
- /* Copies an outline into another one. Both objects must have the */
+ /* Copy an outline into another one. Both objects must have the */
/* same sizes (number of points & number of contours) when this */
/* function is called. */
/* */
@@ -273,7 +272,7 @@ FT_BEGIN_HEADER
/* target :: A handle to the target outline. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Outline_Copy( const FT_Outline* source,
@@ -286,7 +285,7 @@ FT_BEGIN_HEADER
/* FT_Outline_Transform */
/* */
/* <Description> */
- /* Applies a simple 2x2 matrix to all of an outline's points. Useful */
+ /* Apply a simple 2x2 matrix to all of an outline's points. Useful */
/* for applying rotations, slanting, flipping, etc. */
/* */
/* <InOut> */
@@ -310,7 +309,7 @@ FT_BEGIN_HEADER
/* FT_Outline_Embolden */
/* */
/* <Description> */
- /* Emboldens an outline. The new outline will be at most 4 times */
+ /* Embolden an outline. The new outline will be at most 4~times */
/* `strength' pixels wider and higher. You may think of the left and */
/* bottom borders as unchanged. */
/* */
@@ -325,7 +324,7 @@ FT_BEGIN_HEADER
/* 26.6 pixel format. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* The used algorithm to increase or decrease the thickness of the */
@@ -333,6 +332,9 @@ FT_BEGIN_HEADER
/* situations like acute angles or intersections are sometimes */
/* handled incorrectly. */
/* */
+ /* If you need `better' metrics values you should call */
+ /* @FT_Outline_Get_CBox ot @FT_Outline_Get_BBox. */
+ /* */
/* Example call: */
/* */
/* { */
@@ -352,14 +354,14 @@ FT_BEGIN_HEADER
/* FT_Outline_Reverse */
/* */
/* <Description> */
- /* Reverses the drawing direction of an outline. This is used to */
+ /* Reverse the drawing direction of an outline. This is used to */
/* ensure consistent fill conventions for mirrored glyphs. */
/* */
/* <InOut> */
/* outline :: A pointer to the target outline descriptor. */
/* */
/* <Note> */
- /* This functions toggles the bit flag @FT_OUTLINE_REVERSE_FILL in */
+ /* This function toggles the bit flag @FT_OUTLINE_REVERSE_FILL in */
/* the outline's `flags' field. */
/* */
/* It shouldn't be used by a normal client application, unless it */
@@ -375,7 +377,7 @@ FT_BEGIN_HEADER
/* FT_Outline_Get_Bitmap */
/* */
/* <Description> */
- /* Renders an outline within a bitmap. The outline's image is simply */
+ /* Render an outline within a bitmap. The outline's image is simply */
/* OR-ed to the target bitmap. */
/* */
/* <Input> */
@@ -387,14 +389,19 @@ FT_BEGIN_HEADER
/* abitmap :: A pointer to the target bitmap descriptor. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* This function does NOT CREATE the bitmap, it only renders an */
- /* outline image within the one you pass to it! */
+ /* outline image within the one you pass to it! Consequently, the */
+ /* various fields in `abitmap' should be set accordingly. */
/* */
/* It will use the raster corresponding to the default glyph format. */
/* */
+ /* The value of the `num_grays' field in `abitmap' is ignored. If */
+ /* you select the gray-level rasterizer, and you want less than 256 */
+ /* gray levels, you have to use @FT_Outline_Render directly. */
+ /* */
FT_EXPORT( FT_Error )
FT_Outline_Get_Bitmap( FT_Library library,
FT_Outline* outline,
@@ -407,8 +414,8 @@ FT_BEGIN_HEADER
/* FT_Outline_Render */
/* */
/* <Description> */
- /* Renders an outline within a bitmap using the current scan-convert. */
- /* This functions uses an @FT_Raster_Params structure as an argument, */
+ /* Render an outline within a bitmap using the current scan-convert. */
+ /* This function uses an @FT_Raster_Params structure as an argument, */
/* allowing advanced features like direct composition, translucency, */
/* etc. */
/* */
@@ -422,7 +429,7 @@ FT_BEGIN_HEADER
/* describe the rendering operation. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* You should know what you are doing and how @FT_Raster_Params works */
@@ -432,6 +439,11 @@ FT_BEGIN_HEADER
/* converter is called, which means that the value you give to it is */
/* actually ignored. */
/* */
+ /* The gray-level rasterizer always uses 256 gray levels. If you */
+ /* want less gray levels, you have to provide your own span callback. */
+ /* See the @FT_RASTER_FLAG_DIRECT value of the `flags' field in the */
+ /* @FT_Raster_Params structure for more details. */
+ /* */
FT_EXPORT( FT_Error )
FT_Outline_Render( FT_Library library,
FT_Outline* outline,
@@ -446,7 +458,7 @@ FT_BEGIN_HEADER
* @description:
* A list of values used to describe an outline's contour orientation.
*
- * The TrueType and Postscript specifications use different conventions
+ * The TrueType and PostScript specifications use different conventions
* to determine whether outline contours should be filled or unfilled.
*
* @values:
@@ -455,7 +467,7 @@ FT_BEGIN_HEADER
* be filled, and counter-clockwise ones must be unfilled.
*
* FT_ORIENTATION_POSTSCRIPT ::
- * According to the Postscript specification, counter-clockwise contours
+ * According to the PostScript specification, counter-clockwise contours
* must be filled, and clockwise ones must be unfilled.
*
* FT_ORIENTATION_FILL_RIGHT ::
@@ -465,7 +477,7 @@ FT_BEGIN_HEADER
*
* FT_ORIENTATION_FILL_LEFT ::
* This is identical to @FT_ORIENTATION_POSTSCRIPT, but is used to
- * remember that in Postscript, everything that is to the left of
+ * remember that in PostScript, everything that is to the left of
* the drawing direction of a contour must be filled.
*
* FT_ORIENTATION_NONE ::
diff --git a/include/freetype/ftpfr.h b/include/freetype/ftpfr.h
index e2801fd..0b7b7d4 100644
--- a/include/freetype/ftpfr.h
+++ b/include/freetype/ftpfr.h
@@ -4,7 +4,7 @@
/* */
/* FreeType API for accessing PFR-specific data (specification only). */
/* */
-/* Copyright 2002, 2003, 2004, 2006 by */
+/* Copyright 2002, 2003, 2004, 2006, 2008, 2009 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -62,8 +62,8 @@ FT_BEGIN_HEADER
*
* @output:
* aoutline_resolution ::
- * Outline resolution. This is equivalent to `face->units_per_EM'.
- * Optional (parameter can be NULL).
+ * Outline resolution. This is equivalent to `face->units_per_EM'
+ * for non-PFR fonts. Optional (parameter can be NULL).
*
* ametrics_resolution ::
* Metrics resolution. This is equivalent to `outline_resolution'
@@ -73,14 +73,14 @@ FT_BEGIN_HEADER
* A 16.16 fixed-point number used to scale distance expressed
* in metrics units to device sub-pixels. This is equivalent to
* `face->size->x_scale', but for metrics only. Optional (parameter
- * can be NULL)
+ * can be NULL).
*
* ametrics_y_scale ::
* Same as `ametrics_x_scale' but for the vertical direction.
- * optional (parameter can be NULL)
+ * optional (parameter can be NULL).
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* If the input face is not a PFR, this function will return an error.
@@ -115,7 +115,7 @@ FT_BEGIN_HEADER
* avector :: A kerning vector.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* This function always return distances in original PFR metrics
@@ -150,7 +150,7 @@ FT_BEGIN_HEADER
* aadvance :: The glyph advance in metrics units.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* You can use the `x_scale' or `y_scale' results of @FT_Get_PFR_Metrics
diff --git a/include/freetype/ftrender.h b/include/freetype/ftrender.h
index 9ed828e..41c31ea 100644
--- a/include/freetype/ftrender.h
+++ b/include/freetype/ftrender.h
@@ -167,7 +167,7 @@ FT_BEGIN_HEADER
/* FT_Get_Renderer */
/* */
/* <Description> */
- /* Retrieves the current renderer for a given glyph format. */
+ /* Retrieve the current renderer for a given glyph format. */
/* */
/* <Input> */
/* library :: A handle to the library object. */
@@ -175,7 +175,7 @@ FT_BEGIN_HEADER
/* format :: The glyph format. */
/* */
/* <Return> */
- /* A renderer handle. 0 if none found. */
+ /* A renderer handle. 0~if none found. */
/* */
/* <Note> */
/* An error will be returned if a module already exists by that name, */
@@ -195,7 +195,7 @@ FT_BEGIN_HEADER
/* FT_Set_Renderer */
/* */
/* <Description> */
- /* Sets the current renderer to use, and set additional mode. */
+ /* Set the current renderer to use, and set additional mode. */
/* */
/* <InOut> */
/* library :: A handle to the library object. */
@@ -208,7 +208,7 @@ FT_BEGIN_HEADER
/* parameters :: Additional parameters. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* In case of success, the renderer will be used to convert glyph */
diff --git a/include/freetype/ftsizes.h b/include/freetype/ftsizes.h
index 622df16..3e548cc 100644
--- a/include/freetype/ftsizes.h
+++ b/include/freetype/ftsizes.h
@@ -4,7 +4,7 @@
/* */
/* FreeType size objects management (specification). */
/* */
-/* Copyright 1996-2001, 2003, 2004, 2006 by */
+/* Copyright 1996-2001, 2003, 2004, 2006, 2009 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -89,7 +89,7 @@ FT_BEGIN_HEADER
/* asize :: A handle to a new size object. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* You need to call @FT_Activate_Size in order to select the new size */
@@ -115,7 +115,7 @@ FT_BEGIN_HEADER
/* size :: A handle to a target size object. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
FT_EXPORT( FT_Error )
FT_Done_Size( FT_Size size );
@@ -129,8 +129,8 @@ FT_BEGIN_HEADER
/* <Description> */
/* Even though it is possible to create several size objects for a */
/* given face (see @FT_New_Size for details), functions like */
- /* @FT_Load_Glyph or @FT_Load_Char only use the last-created one to */
- /* determine the `current character pixel size'. */
+ /* @FT_Load_Glyph or @FT_Load_Char only use the one which has been */
+ /* activated last to determine the `current character pixel size'. */
/* */
/* This function can be used to `activate' a previously created size */
/* object. */
@@ -139,7 +139,7 @@ FT_BEGIN_HEADER
/* size :: A handle to a target size object. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* If `face' is the size's parent face object, this function changes */
diff --git a/include/freetype/ftsnames.h b/include/freetype/ftsnames.h
index 003cbcd..477e1e3 100644
--- a/include/freetype/ftsnames.h
+++ b/include/freetype/ftsnames.h
@@ -48,7 +48,7 @@ FT_BEGIN_HEADER
/* Access the names embedded in TrueType and OpenType files. */
/* */
/* <Description> */
- /* The TrueType and OpenType specification allow the inclusion of */
+ /* The TrueType and OpenType specifications allow the inclusion of */
/* a special `names table' in font files. This table contains */
/* textual (and internationalized) information regarding the font, */
/* like family name, copyright, version, etc. */
@@ -114,7 +114,7 @@ FT_BEGIN_HEADER
/* FT_Get_Sfnt_Name_Count */
/* */
/* <Description> */
- /* Retrieves the number of name strings in the SFNT `name' table. */
+ /* Retrieve the number of name strings in the SFNT `name' table. */
/* */
/* <Input> */
/* face :: A handle to the source face. */
@@ -132,7 +132,7 @@ FT_BEGIN_HEADER
/* FT_Get_Sfnt_Name */
/* */
/* <Description> */
- /* Retrieves a string of the SFNT `name' table for a given index. */
+ /* Retrieve a string of the SFNT `name' table for a given index. */
/* */
/* <Input> */
/* face :: A handle to the source face. */
@@ -143,7 +143,7 @@ FT_BEGIN_HEADER
/* aname :: The indexed @FT_SfntName structure. */
/* */
/* <Return> */
- /* FreeType error code. 0 means success. */
+ /* FreeType error code. 0~means success. */
/* */
/* <Note> */
/* The `string' array returned in the `aname' structure is not */
diff --git a/include/freetype/ftstroke.h b/include/freetype/ftstroke.h
index 26e3120..ae90500 100644
--- a/include/freetype/ftstroke.h
+++ b/include/freetype/ftstroke.h
@@ -4,7 +4,7 @@
/* */
/* FreeType path stroker (specification). */
/* */
-/* Copyright 2002, 2003, 2004, 2005, 2006, 2008 by */
+/* Copyright 2002, 2003, 2004, 2005, 2006, 2008, 2009 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -171,7 +171,7 @@ FT_BEGIN_HEADER
* The source outline handle.
*
* @return:
- * The border index. @FT_STROKER_BORDER_LEFT for empty or invalid
+ * The border index. @FT_STROKER_BORDER_RIGHT for empty or invalid
* outlines.
*/
FT_EXPORT( FT_StrokerBorder )
@@ -216,7 +216,7 @@ FT_BEGIN_HEADER
* A new stroker object handle. NULL in case of error.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*/
FT_EXPORT( FT_Error )
FT_Stroker_New( FT_Library library,
@@ -249,7 +249,7 @@ FT_BEGIN_HEADER
* expressed as 16.16 fixed point value.
*
* @note:
- * The radius is expressed in the same units that the outline
+ * The radius is expressed in the same units as the outline
* coordinates.
*/
FT_EXPORT( void )
@@ -297,18 +297,18 @@ FT_BEGIN_HEADER
* The source outline.
*
* opened ::
- * A boolean. If 1, the outline is treated as an open path instead
+ * A boolean. If~1, the outline is treated as an open path instead
* of a closed one.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
- * If `opened' is 0 (the default), the outline is treated as a closed
- * path, and the stroker will generate two distinct `border' outlines.
+ * If `opened' is~0 (the default), the outline is treated as a closed
+ * path, and the stroker generates two distinct `border' outlines.
*
- * If `opened' is 1, the outline is processed as an open path, and the
- * stroker will generate a single `stroke' outline.
+ * If `opened' is~1, the outline is processed as an open path, and the
+ * stroker generates a single `stroke' outline.
*
* This function calls @FT_Stroker_Rewind automatically.
*/
@@ -334,10 +334,10 @@ FT_BEGIN_HEADER
* A pointer to the start vector.
*
* open ::
- * A boolean. If 1, the sub-path is treated as an open one.
+ * A boolean. If~1, the sub-path is treated as an open one.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* This function is useful when you need to stroke a path that is
@@ -362,11 +362,11 @@ FT_BEGIN_HEADER
* The target stroker handle.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* You should call this function after @FT_Stroker_BeginSubPath.
- * If the subpath was not `opened', this function will `draw' a
+ * If the subpath was not `opened', this function `draws' a
* single line segment to the start position when needed.
*/
FT_EXPORT( FT_Error )
@@ -390,7 +390,7 @@ FT_BEGIN_HEADER
* A pointer to the destination point.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* You should call this function between @FT_Stroker_BeginSubPath and
@@ -421,7 +421,7 @@ FT_BEGIN_HEADER
* A pointer to the destination point.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* You should call this function between @FT_Stroker_BeginSubPath and
@@ -456,7 +456,7 @@ FT_BEGIN_HEADER
* A pointer to the destination point.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* You should call this function between @FT_Stroker_BeginSubPath and
@@ -476,7 +476,7 @@ FT_BEGIN_HEADER
*
* @description:
* Call this function once you have finished parsing your paths
- * with the stroker. It will return the number of points and
+ * with the stroker. It returns the number of points and
* contours necessary to export one of the `border' or `stroke'
* outlines generated by the stroker.
*
@@ -495,7 +495,7 @@ FT_BEGIN_HEADER
* The number of contours.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* When an outline, or a sub-path, is `closed', the stroker generates
@@ -525,8 +525,8 @@ FT_BEGIN_HEADER
* export the corresponding border to your own @FT_Outline
* structure.
*
- * Note that this function will append the border points and
- * contours to your outline, but will not try to resize its
+ * Note that this function appends the border points and
+ * contours to your outline, but does not try to resize its
* arrays.
*
* @input:
@@ -583,7 +583,7 @@ FT_BEGIN_HEADER
* The number of contours.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*/
FT_EXPORT( FT_Error )
FT_Stroker_GetCounts( FT_Stroker stroker,
@@ -600,8 +600,8 @@ FT_BEGIN_HEADER
* Call this function after @FT_Stroker_GetBorderCounts to
* export the all borders to your own @FT_Outline structure.
*
- * Note that this function will append the border points and
- * contours to your outline, but will not try to resize its
+ * Note that this function appends the border points and
+ * contours to your outline, but does not try to resize its
* arrays.
*
* @input:
@@ -649,11 +649,11 @@ FT_BEGIN_HEADER
* A stroker handle.
*
* destroy ::
- * A Boolean. If 1, the source glyph object is destroyed
+ * A Boolean. If~1, the source glyph object is destroyed
* on success.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* The source glyph is untouched in case of error.
@@ -682,15 +682,15 @@ FT_BEGIN_HEADER
* A stroker handle.
*
* inside ::
- * A Boolean. If 1, return the inside border, otherwise
+ * A Boolean. If~1, return the inside border, otherwise
* the outside border.
*
* destroy ::
- * A Boolean. If 1, the source glyph object is destroyed
+ * A Boolean. If~1, the source glyph object is destroyed
* on success.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* The source glyph is untouched in case of error.
diff --git a/include/freetype/ftsynth.h b/include/freetype/ftsynth.h
index 36984bf..a068b79 100644
--- a/include/freetype/ftsynth.h
+++ b/include/freetype/ftsynth.h
@@ -5,7 +5,7 @@
/* FreeType synthesizing code for emboldening and slanting */
/* (specification). */
/* */
-/* Copyright 2000-2001, 2003, 2006 by */
+/* Copyright 2000-2001, 2003, 2006, 2008 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -23,7 +23,7 @@
/*************************************************************************/
/*************************************************************************/
/********* *********/
- /********* WARNING, THIS IS ALPHA CODE, THIS API *********/
+ /********* WARNING, THIS IS ALPHA CODE! THIS API *********/
/********* IS DUE TO CHANGE UNTIL STRICTLY NOTIFIED BY THE *********/
/********* FREETYPE DEVELOPMENT TEAM *********/
/********* *********/
@@ -34,6 +34,13 @@
/*************************************************************************/
+ /* Main reason for not lifting the functions in this module to a */
+ /* `standard' API is that the used parameters for emboldening and */
+ /* slanting are not configurable. Consider the functions as a */
+ /* code resource which should be copied into the application and */
+ /* adapted to the particular needs. */
+
+
#ifndef __FTSYNTH_H__
#define __FTSYNTH_H__
@@ -50,20 +57,20 @@
FT_BEGIN_HEADER
- /* Make sure slot owns slot->bitmap. */
- FT_EXPORT( FT_Error )
- FT_GlyphSlot_Own_Bitmap( FT_GlyphSlot slot );
-
- /* Do not use this function directly! Copy the code to */
- /* your application and modify it to suit your need. */
+ /* Embolden a glyph by a `reasonable' value (which is highly a matter of */
+ /* taste). This function is actually a convenience function, providing */
+ /* a wrapper for @FT_Outline_Embolden and @FT_Bitmap_Embolden. */
+ /* */
+ /* For emboldened outlines the metrics are estimates only; if you need */
+ /* precise values you should call @FT_Outline_Get_CBox. */
FT_EXPORT( void )
FT_GlyphSlot_Embolden( FT_GlyphSlot slot );
-
+ /* Slant an outline glyph to the right by about 12 degrees. */
FT_EXPORT( void )
FT_GlyphSlot_Oblique( FT_GlyphSlot slot );
- /* */
+ /* */
FT_END_HEADER
diff --git a/include/freetype/ftsystem.h b/include/freetype/ftsystem.h
index 59cd019..a95b2c7 100644
--- a/include/freetype/ftsystem.h
+++ b/include/freetype/ftsystem.h
@@ -82,7 +82,7 @@ FT_BEGIN_HEADER
* The size in bytes to allocate.
*
* @return:
- * Address of new memory block. 0 in case of failure.
+ * Address of new memory block. 0~in case of failure.
*
*/
typedef void*
@@ -133,7 +133,7 @@ FT_BEGIN_HEADER
* The block's current address.
*
* @return:
- * New block address. 0 in case of memory shortage.
+ * New block address. 0~in case of memory shortage.
*
* @note:
* In case of error, the old block must still be available.
@@ -152,7 +152,7 @@ FT_BEGIN_HEADER
* FT_MemoryRec
*
* @description:
- * A structure used to describe a given memory manager to FreeType 2.
+ * A structure used to describe a given memory manager to FreeType~2.
*
* @fields:
* user ::
@@ -240,7 +240,7 @@ FT_BEGIN_HEADER
*
* @note:
* This function might be called to perform a seek or skip operation
- * with a `count' of 0.
+ * with a `count' of~0.
*
*/
typedef unsigned long
diff --git a/include/freetype/fttypes.h b/include/freetype/fttypes.h
index a60aa54..54f08e3 100644
--- a/include/freetype/fttypes.h
+++ b/include/freetype/fttypes.h
@@ -43,7 +43,7 @@ FT_BEGIN_HEADER
/* The basic data types defined by the library. */
/* */
/* <Description> */
- /* This section contains the basic data types defined by FreeType 2, */
+ /* This section contains the basic data types defined by FreeType~2, */
/* ranging from simple scalar types to bitmap descriptors. More */
/* font-specific structures are defined in a different section. */
/* */
@@ -99,7 +99,7 @@ FT_BEGIN_HEADER
/* */
/* <Description> */
/* A typedef of unsigned char, used for simple booleans. As usual, */
- /* values 1 and 0 represent true and false, respectively. */
+ /* values 1 and~0 represent true and false, respectively. */
/* */
typedef unsigned char FT_Bool;
@@ -167,7 +167,7 @@ FT_BEGIN_HEADER
/* FT_Tag */
/* */
/* <Description> */
- /* A typedef for 32bit tags (as used in the SFNT format). */
+ /* A typedef for 32-bit tags (as used in the SFNT format). */
/* */
typedef FT_UInt32 FT_Tag;
@@ -290,7 +290,7 @@ FT_BEGIN_HEADER
/* FT_Error */
/* */
/* <Description> */
- /* The FreeType error code type. A value of 0 is always interpreted */
+ /* The FreeType error code type. A value of~0 is always interpreted */
/* as a successful operation. */
/* */
typedef int FT_Error;
@@ -313,7 +313,7 @@ FT_BEGIN_HEADER
/* FT_Offset */
/* */
/* <Description> */
- /* This is equivalent to the ANSI C `size_t' type, i.e., the largest */
+ /* This is equivalent to the ANSI~C `size_t' type, i.e., the largest */
/* _unsigned_ integer type used to express a file size or position, */
/* or a memory block size. */
/* */
@@ -326,7 +326,7 @@ FT_BEGIN_HEADER
/* FT_PtrDist */
/* */
/* <Description> */
- /* This is equivalent to the ANSI C `ptrdiff_t' type, i.e., the */
+ /* This is equivalent to the ANSI~C `ptrdiff_t' type, i.e., the */
/* largest _signed_ integer type used to express the distance */
/* between two pointers. */
/* */
@@ -413,7 +413,7 @@ FT_BEGIN_HEADER
/* FT_Generic_Finalizer */
/* */
/* <Description> */
- /* Describes a function used to destroy the `client' data of any */
+ /* Describe a function used to destroy the `client' data of any */
/* FreeType object. See the description of the @FT_Generic type for */
/* details of usage. */
/* */
@@ -470,8 +470,8 @@ FT_BEGIN_HEADER
/* TrueType tables into an unsigned long to be used within FreeType. */
/* */
/* <Note> */
- /* The produced values *must* be 32bit integers. Don't redefine this */
- /* macro. */
+ /* The produced values *must* be 32-bit integers. Don't redefine */
+ /* this macro. */
/* */
#define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) \
( ( (FT_ULong)_x1 << 24 ) | \
diff --git a/include/freetype/ftwinfnt.h b/include/freetype/ftwinfnt.h
index 951b0c4..ea33353 100644
--- a/include/freetype/ftwinfnt.h
+++ b/include/freetype/ftwinfnt.h
@@ -111,11 +111,11 @@ FT_BEGIN_HEADER
* ordering and minor deviations).
*
* FT_WinFNT_ID_CP949 ::
- * A superset of Korean Hangul KS C 5601-1987 (with different
+ * A superset of Korean Hangul KS~C 5601-1987 (with different
* ordering and minor deviations).
*
* FT_WinFNT_ID_CP950 ::
- * A superset of traditional Chinese Big 5 ETen (with different
+ * A superset of traditional Chinese Big~5 ETen (with different
* ordering and minor deviations).
*
* FT_WinFNT_ID_CP1250 ::
@@ -248,7 +248,7 @@ FT_BEGIN_HEADER
* aheader :: The WinFNT header.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* This function only works with Windows FNT faces, returning an error
diff --git a/include/freetype/ftxf86.h b/include/freetype/ftxf86.h
index ea82abb..ae9ff07 100644
--- a/include/freetype/ftxf86.h
+++ b/include/freetype/ftxf86.h
@@ -60,8 +60,8 @@ FT_BEGIN_HEADER
/* <Description> */
/* Return a string describing the format of a given face, using values */
/* which can be used as an X11 FONT_PROPERTY. Possible values are */
- /* `TrueType', `Type 1', `BDF', `PCF', `Type 42', `CID Type 1', `CFF', */
- /* `PFR', and `Windows FNT'. */
+ /* `TrueType', `Type~1', `BDF', `PCF', `Type~42', `CID~Type~1', `CFF', */
+ /* `PFR', and `Windows~FNT'. */
/* */
/* <Input> */
/* face :: */
diff --git a/include/freetype/internal/ftdebug.h b/include/freetype/internal/ftdebug.h
index d40af4f..7baae35 100644
--- a/include/freetype/internal/ftdebug.h
+++ b/include/freetype/internal/ftdebug.h
@@ -4,7 +4,7 @@
/* */
/* Debugging and logging component (specification). */
/* */
-/* Copyright 1996-2001, 2002, 2004, 2006, 2007, 2008 by */
+/* Copyright 1996-2001, 2002, 2004, 2006, 2007, 2008, 2009 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -92,7 +92,7 @@ FT_BEGIN_HEADER
#else /* !FT_DEBUG_LEVEL_TRACE */
-#define FT_TRACE( level, varformat ) do ; while ( 0 ) /* nothing */
+#define FT_TRACE( level, varformat ) do { } while ( 0 ) /* nothing */
#endif /* !FT_DEBUG_LEVEL_TRACE */
@@ -178,7 +178,7 @@ FT_BEGIN_HEADER
#else /* !FT_DEBUG_LEVEL_ERROR */
-#define FT_ERROR( varformat ) do ; while ( 0 ) /* nothing */
+#define FT_ERROR( varformat ) do { } while ( 0 ) /* nothing */
#endif /* !FT_DEBUG_LEVEL_ERROR */
@@ -201,7 +201,7 @@ FT_BEGIN_HEADER
#else /* !FT_DEBUG_LEVEL_ERROR */
-#define FT_ASSERT( condition ) do ; while ( 0 )
+#define FT_ASSERT( condition ) do { } while ( 0 )
#endif /* !FT_DEBUG_LEVEL_ERROR */
diff --git a/include/freetype/internal/ftdriver.h b/include/freetype/internal/ftdriver.h
index f37864a..854abad 100644
--- a/include/freetype/internal/ftdriver.h
+++ b/include/freetype/internal/ftdriver.h
@@ -23,6 +23,7 @@
#include <ft2build.h>
#include FT_MODULE_H
+
FT_BEGIN_HEADER
@@ -90,12 +91,14 @@ FT_BEGIN_HEADER
(*FT_CharMap_CharNextFunc)( FT_CharMap charmap,
FT_Long charcode );
+
typedef FT_Error
(*FT_Face_GetKerningFunc)( FT_Face face,
FT_UInt left_glyph,
FT_UInt right_glyph,
FT_Vector* kerning );
+
typedef FT_Error
(*FT_Face_AttachFunc)( FT_Face face,
FT_Stream stream );
@@ -105,7 +108,7 @@ FT_BEGIN_HEADER
(*FT_Face_GetAdvancesFunc)( FT_Face face,
FT_UInt first,
FT_UInt count,
- FT_UInt flags,
+ FT_Int32 flags,
FT_Fixed* advances );
diff --git a/include/freetype/internal/ftgloadr.h b/include/freetype/internal/ftgloadr.h
index 9f47c0b..548481a 100644
--- a/include/freetype/internal/ftgloadr.h
+++ b/include/freetype/internal/ftgloadr.h
@@ -67,11 +67,11 @@ FT_BEGIN_HEADER
typedef struct FT_GlyphLoadRec_
{
- FT_Outline outline; /* outline */
- FT_Vector* extra_points; /* extra points table */
+ FT_Outline outline; /* outline */
+ FT_Vector* extra_points; /* extra points table */
FT_Vector* extra_points2; /* second extra points table */
- FT_UInt num_subglyphs; /* number of subglyphs */
- FT_SubGlyph subglyphs; /* subglyphs */
+ FT_UInt num_subglyphs; /* number of subglyphs */
+ FT_SubGlyph subglyphs; /* subglyphs */
} FT_GlyphLoadRec, *FT_GlyphLoad;
diff --git a/include/freetype/internal/ftobjs.h b/include/freetype/internal/ftobjs.h
index 167224a..1f22343 100644
--- a/include/freetype/internal/ftobjs.h
+++ b/include/freetype/internal/ftobjs.h
@@ -193,6 +193,7 @@ FT_BEGIN_HEADER
FT_CMap_DoneFunc done;
FT_CMap_CharIndexFunc char_index;
FT_CMap_CharNextFunc char_next;
+
/* Subsequent entries are special ones for format 14 -- the variant */
/* selector subtable which behaves like no other */
diff --git a/include/freetype/internal/psaux.h b/include/freetype/internal/psaux.h
index 67b7a42..7fb4c99 100644
--- a/include/freetype/internal/psaux.h
+++ b/include/freetype/internal/psaux.h
@@ -5,7 +5,7 @@
/* Auxiliary functions and data structures related to PostScript fonts */
/* (specification). */
/* */
-/* Copyright 1996-2001, 2002, 2003, 2004, 2006, 2008 by */
+/* Copyright 1996-2001, 2002, 2003, 2004, 2006, 2008, 2009 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -197,6 +197,7 @@ FT_BEGIN_HEADER
{
T1_FIELD_LOCATION_CID_INFO,
T1_FIELD_LOCATION_FONT_DICT,
+ T1_FIELD_LOCATION_FONT_EXTRA,
T1_FIELD_LOCATION_FONT_INFO,
T1_FIELD_LOCATION_PRIVATE,
T1_FIELD_LOCATION_BBOX,
@@ -227,7 +228,11 @@ FT_BEGIN_HEADER
FT_UInt array_max; /* maximal number of elements for */
/* array */
FT_UInt count_offset; /* offset of element count for */
- /* arrays */
+ /* arrays; must not be zero if in */
+ /* use -- in other words, a */
+ /* `num_FOO' element must not */
+ /* start the used structure if we */
+ /* parse a `FOO' array */
FT_UInt dict; /* where we expect it */
} T1_FieldRec;
diff --git a/include/freetype/internal/services/svcid.h b/include/freetype/internal/services/svcid.h
index 47fef62..2e391f2 100644
--- a/include/freetype/internal/services/svcid.h
+++ b/include/freetype/internal/services/svcid.h
@@ -4,7 +4,7 @@
/* */
/* The FreeType CID font services (specification). */
/* */
-/* Copyright 2007 by Derek Clegg. */
+/* Copyright 2007, 2009 by Derek Clegg, Michael Toftdal. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
@@ -31,10 +31,19 @@ FT_BEGIN_HEADER
const char* *registry,
const char* *ordering,
FT_Int *supplement );
+ typedef FT_Error
+ (*FT_CID_GetIsInternallyCIDKeyedFunc)( FT_Face face,
+ FT_Bool *is_cid );
+ typedef FT_Error
+ (*FT_CID_GetCIDFromGlyphIndexFunc)( FT_Face face,
+ FT_UInt glyph_index,
+ FT_UInt *cid );
FT_DEFINE_SERVICE( CID )
{
FT_CID_GetRegistryOrderingSupplementFunc get_ros;
+ FT_CID_GetIsInternallyCIDKeyedFunc get_is_cid;
+ FT_CID_GetCIDFromGlyphIndexFunc get_cid_from_glyph_index;
};
/* */
diff --git a/include/freetype/internal/services/svpsinfo.h b/include/freetype/internal/services/svpsinfo.h
index 63f5db9..124c6f9 100644
--- a/include/freetype/internal/services/svpsinfo.h
+++ b/include/freetype/internal/services/svpsinfo.h
@@ -4,7 +4,7 @@
/* */
/* The FreeType PostScript info service (specification). */
/* */
-/* Copyright 2003, 2004 by */
+/* Copyright 2003, 2004, 2009 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -33,6 +33,10 @@ FT_BEGIN_HEADER
(*PS_GetFontInfoFunc)( FT_Face face,
PS_FontInfoRec* afont_info );
+ typedef FT_Error
+ (*PS_GetFontExtraFunc)( FT_Face face,
+ PS_FontExtraRec* afont_extra );
+
typedef FT_Int
(*PS_HasGlyphNamesFunc)( FT_Face face );
@@ -44,6 +48,7 @@ FT_BEGIN_HEADER
FT_DEFINE_SERVICE( PsInfo )
{
PS_GetFontInfoFunc ps_get_font_info;
+ PS_GetFontExtraFunc ps_get_font_extra;
PS_HasGlyphNamesFunc ps_has_glyph_names;
PS_GetFontPrivateFunc ps_get_font_private;
};
diff --git a/include/freetype/internal/services/svttcmap.h b/include/freetype/internal/services/svttcmap.h
index 1e02d15..553ecb0 100644
--- a/include/freetype/internal/services/svttcmap.h
+++ b/include/freetype/internal/services/svttcmap.h
@@ -7,7 +7,7 @@
/* Copyright 2003 by */
/* Masatake YAMATO, Redhat K.K. */
/* */
-/* Copyright 2003 by */
+/* Copyright 2003, 2008 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -49,6 +49,13 @@ FT_BEGIN_HEADER
/* The language ID used in Mac fonts. Definitions of values are in */
/* freetype/ttnameid.h. */
/* */
+ /* format :: */
+ /* The cmap format. OpenType 1.5 defines the formats 0 (byte */
+ /* encoding table), 2~(high-byte mapping through table), 4~(segment */
+ /* mapping to delta values), 6~(trimmed table mapping), 8~(mixed */
+ /* 16-bit and 32-bit coverage), 10~(trimmed array), 12~(segmented */
+ /* coverage), and 14 (Unicode Variation Sequences). */
+ /* */
typedef struct TT_CMapInfo_
{
FT_ULong language;
diff --git a/include/freetype/internal/t1types.h b/include/freetype/internal/t1types.h
index 047c6d5..ff021b0 100644
--- a/include/freetype/internal/t1types.h
+++ b/include/freetype/internal/t1types.h
@@ -5,7 +5,7 @@
/* Basic Type1/Type2 type definitions and interface (specification */
/* only). */
/* */
-/* Copyright 1996-2001, 2002, 2003, 2004, 2006 by */
+/* Copyright 1996-2001, 2002, 2003, 2004, 2006, 2008, 2009 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -87,11 +87,24 @@ FT_BEGIN_HEADER
} T1_EncodingType;
+ /* used to hold extra data of PS_FontInfoRec that
+ * cannot be stored in the publicly defined structure.
+ *
+ * Note these can't be blended with multiple-masters.
+ */
+ typedef struct PS_FontExtraRec_
+ {
+ FT_UShort fs_type;
+
+ } PS_FontExtraRec;
+
+
typedef struct T1_FontRec_
{
- PS_FontInfoRec font_info; /* font info dictionary */
- PS_PrivateRec private_dict; /* private dictionary */
- FT_String* font_name; /* top-level dictionary */
+ PS_FontInfoRec font_info; /* font info dictionary */
+ PS_FontExtraRec font_extra; /* font info extra fields */
+ PS_PrivateRec private_dict; /* private dictionary */
+ FT_String* font_name; /* top-level dictionary */
T1_EncodingType encoding_type;
T1_EncodingRec encoding;
@@ -231,7 +244,10 @@ FT_BEGIN_HEADER
void* psnames;
void* psaux;
CID_FaceInfoRec cid;
+ PS_FontExtraRec font_extra;
+#if 0
void* afm_data;
+#endif
CID_Subrs subrs;
/* since version 2.1 - interface to PostScript hinter */
diff --git a/include/freetype/t1tables.h b/include/freetype/t1tables.h
index bd11f33..5e2a393 100644
--- a/include/freetype/t1tables.h
+++ b/include/freetype/t1tables.h
@@ -5,7 +5,7 @@
/* Basic Type 1/Type 2 tables definitions and interface (specification */
/* only). */
/* */
-/* Copyright 1996-2001, 2002, 2003, 2004, 2006, 2008 by */
+/* Copyright 1996-2001, 2002, 2003, 2004, 2006, 2008, 2009 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -43,7 +43,7 @@ FT_BEGIN_HEADER
/* Type 1 Tables */
/* */
/* <Abstract> */
- /* Type 1 (PostScript) specific font tables. */
+ /* Type~1 (PostScript) specific font tables. */
/* */
/* <Description> */
/* This section contains the definition of Type 1-specific tables, */
@@ -62,8 +62,8 @@ FT_BEGIN_HEADER
/* PS_FontInfoRec */
/* */
/* <Description> */
- /* A structure used to model a Type1/Type2 FontInfo dictionary. Note */
- /* that for Multiple Master fonts, each instance has its own */
+ /* A structure used to model a Type~1 or Type~2 FontInfo dictionary. */
+ /* Note that for Multiple Master fonts, each instance has its own */
/* FontInfo dictionary. */
/* */
typedef struct PS_FontInfoRec_
@@ -111,9 +111,9 @@ FT_BEGIN_HEADER
/* PS_PrivateRec */
/* */
/* <Description> */
- /* A structure used to model a Type1/Type2 private dictionary. Note */
- /* that for Multiple Master fonts, each instance has its own Private */
- /* dictionary. */
+ /* A structure used to model a Type~1 or Type~2 private dictionary. */
+ /* Note that for Multiple Master fonts, each instance has its own */
+ /* Private dictionary. */
/* */
typedef struct PS_PrivateRec_
{
@@ -408,7 +408,7 @@ FT_BEGIN_HEADER
* FT_Has_PS_Glyph_Names
*
* @description:
- * Return true if a given face provides reliable Postscript glyph
+ * Return true if a given face provides reliable PostScript glyph
* names. This is similar to using the @FT_HAS_GLYPH_NAMES macro,
* except that certain fonts (mostly TrueType) contain incorrect
* glyph name tables.
@@ -435,24 +435,24 @@ FT_BEGIN_HEADER
*
* @description:
* Retrieve the @PS_FontInfoRec structure corresponding to a given
- * Postscript font.
+ * PostScript font.
*
* @input:
* face ::
- * Postscript face handle.
+ * PostScript face handle.
*
* @output:
* afont_info ::
* Output font info structure pointer.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* The string pointers within the font info structure are owned by
* the face and don't need to be freed by the caller.
*
- * If the font's format is not Postscript-based, this function will
+ * If the font's format is not PostScript-based, this function will
* return the `FT_Err_Invalid_Argument' error code.
*
*/
@@ -468,25 +468,25 @@ FT_BEGIN_HEADER
*
* @description:
* Retrieve the @PS_PrivateRec structure corresponding to a given
- * Postscript font.
+ * PostScript font.
*
* @input:
* face ::
- * Postscript face handle.
+ * PostScript face handle.
*
* @output:
* afont_private ::
* Output private dictionary structure pointer.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
- * The string pointers within the font info structure are owned by
+ * The string pointers within the @PS_PrivateRec structure are owned by
* the face and don't need to be freed by the caller.
*
- * If the font's format is not Postscript-based, this function will
- * return the `FT_Err_Invalid_Argument' error code.
+ * If the font's format is not PostScript-based, this function returns
+ * the `FT_Err_Invalid_Argument' error code.
*
*/
FT_EXPORT( FT_Error )
diff --git a/include/freetype/ttnameid.h b/include/freetype/ttnameid.h
index 0cddba1..cbeac78 100644
--- a/include/freetype/ttnameid.h
+++ b/include/freetype/ttnameid.h
@@ -303,7 +303,7 @@ FT_BEGIN_HEADER
* TT_ADOBE_ID_CUSTOM ::
* Adobe custom encoding.
* TT_ADOBE_ID_LATIN_1 ::
- * Adobe Latin 1 encoding.
+ * Adobe Latin~1 encoding.
*/
#define TT_ADOBE_ID_STANDARD 0
@@ -835,16 +835,18 @@ FT_BEGIN_HEADER
/* This is new in OpenType 1.3 */
#define TT_NAME_ID_CID_FINDFONT_NAME 20
+ /* This is new in OpenType 1.5 */
+#define TT_NAME_ID_WWS_FAMILY 21
+#define TT_NAME_ID_WWS_SUBFAMILY 22
+
/*************************************************************************/
/* */
/* Bit mask values for the Unicode Ranges from the TTF `OS2 ' table. */
/* */
- /* Updated 02-Jul-2000. */
+ /* Updated 08-Nov-2008. */
/* */
- /* General Scripts Area */
-
/* Bit 0 Basic Latin */
#define TT_UCR_BASIC_LATIN (1L << 0) /* U+0020-U+007E */
/* Bit 1 C1 Controls and Latin-1 Supplement */
@@ -853,27 +855,44 @@ FT_BEGIN_HEADER
#define TT_UCR_LATIN_EXTENDED_A (1L << 2) /* U+0100-U+017F */
/* Bit 3 Latin Extended-B */
#define TT_UCR_LATIN_EXTENDED_B (1L << 3) /* U+0180-U+024F */
- /* Bit 4 IPA Extensions */
+ /* Bit 4 IPA Extensions */
+ /* Phonetic Extensions */
+ /* Phonetic Extensions Supplement */
#define TT_UCR_IPA_EXTENSIONS (1L << 4) /* U+0250-U+02AF */
+ /* U+1D00-U+1D7F */
+ /* U+1D80-U+1DBF */
/* Bit 5 Spacing Modifier Letters */
+ /* Modifier Tone Letters */
#define TT_UCR_SPACING_MODIFIER (1L << 5) /* U+02B0-U+02FF */
- /* Bit 6 Combining Diacritical Marks */
+ /* U+A700-U+A71F */
+ /* Bit 6 Combining Diacritical Marks */
+ /* Combining Diacritical Marks Supplement */
#define TT_UCR_COMBINING_DIACRITICS (1L << 6) /* U+0300-U+036F */
+ /* U+1DC0-U+1DFF */
/* Bit 7 Greek and Coptic */
#define TT_UCR_GREEK (1L << 7) /* U+0370-U+03FF */
- /* Bit 8 is reserved (was: Greek Symbols and Coptic) */
- /* Bit 9 Cyrillic + */
- /* Cyrillic Supplementary */
+ /* Bit 8 Coptic */
+#define TT_UCR_COPTIC (1L << 8) /* U+2C80-U+2CFF */
+ /* Bit 9 Cyrillic */
+ /* Cyrillic Supplement */
+ /* Cyrillic Extended-A */
+ /* Cyrillic Extended-B */
#define TT_UCR_CYRILLIC (1L << 9) /* U+0400-U+04FF */
/* U+0500-U+052F */
+ /* U+2DE0-U+2DFF */
+ /* U+A640-U+A69F */
/* Bit 10 Armenian */
#define TT_UCR_ARMENIAN (1L << 10) /* U+0530-U+058F */
/* Bit 11 Hebrew */
#define TT_UCR_HEBREW (1L << 11) /* U+0590-U+05FF */
- /* Bit 12 is reserved (was: Hebrew Extended) */
- /* Bit 13 Arabic */
+ /* Bit 12 Vai */
+#define TT_UCR_VAI (1L << 12) /* U+A500-U+A63F */
+ /* Bit 13 Arabic */
+ /* Arabic Supplement */
#define TT_UCR_ARABIC (1L << 13) /* U+0600-U+06FF */
- /* Bit 14 is reserved (was: Arabic Extended) */
+ /* U+0750-U+077F */
+ /* Bit 14 NKo */
+#define TT_UCR_NKO (1L << 14) /* U+07C0-U+07FF */
/* Bit 15 Devanagari */
#define TT_UCR_DEVANAGARI (1L << 15) /* U+0900-U+097F */
/* Bit 16 Bengali */
@@ -896,20 +915,26 @@ FT_BEGIN_HEADER
#define TT_UCR_THAI (1L << 24) /* U+0E00-U+0E7F */
/* Bit 25 Lao */
#define TT_UCR_LAO (1L << 25) /* U+0E80-U+0EFF */
- /* Bit 26 Georgian */
+ /* Bit 26 Georgian */
+ /* Georgian Supplement */
#define TT_UCR_GEORGIAN (1L << 26) /* U+10A0-U+10FF */
- /* Bit 27 is reserved (was Georgian Extended) */
+ /* U+2D00-U+2D2F */
+ /* Bit 27 Balinese */
+#define TT_UCR_BALINESE (1L << 27) /* U+1B00-U+1B7F */
/* Bit 28 Hangul Jamo */
#define TT_UCR_HANGUL_JAMO (1L << 28) /* U+1100-U+11FF */
/* Bit 29 Latin Extended Additional */
+ /* Latin Extended-C */
+ /* Latin Extended-D */
#define TT_UCR_LATIN_EXTENDED_ADDITIONAL (1L << 29) /* U+1E00-U+1EFF */
+ /* U+2C60-U+2C7F */
+ /* U+A720-U+A7FF */
/* Bit 30 Greek Extended */
#define TT_UCR_GREEK_EXTENDED (1L << 30) /* U+1F00-U+1FFF */
-
- /* Symbols Area */
-
- /* Bit 31 General Punctuation */
+ /* Bit 31 General Punctuation */
+ /* Supplemental Punctuation */
#define TT_UCR_GENERAL_PUNCTUATION (1L << 31) /* U+2000-U+206F */
+ /* U+2E00-U+2E7F */
/* Bit 32 Superscripts And Subscripts */
#define TT_UCR_SUPERSCRIPTS_SUBSCRIPTS (1L << 0) /* U+2070-U+209F */
/* Bit 33 Currency Symbols */
@@ -920,16 +945,18 @@ FT_BEGIN_HEADER
#define TT_UCR_LETTERLIKE_SYMBOLS (1L << 3) /* U+2100-U+214F */
/* Bit 36 Number Forms */
#define TT_UCR_NUMBER_FORMS (1L << 4) /* U+2150-U+218F */
- /* Bit 37 Arrows + */
- /* Supplemental Arrows-A + */
- /* Supplemental Arrows-B */
+ /* Bit 37 Arrows */
+ /* Supplemental Arrows-A */
+ /* Supplemental Arrows-B */
+ /* Miscellaneous Symbols and Arrows */
#define TT_UCR_ARROWS (1L << 5) /* U+2190-U+21FF */
/* U+27F0-U+27FF */
/* U+2900-U+297F */
- /* Bit 38 Mathematical Operators + */
- /* Supplemental Mathematical Operators + */
- /* Miscellaneous Mathematical Symbols-A + */
- /* Miscellaneous Mathematical Symbols-B */
+ /* U+2B00-U+2BFF */
+ /* Bit 38 Mathematical Operators */
+ /* Supplemental Mathematical Operators */
+ /* Miscellaneous Mathematical Symbols-A */
+ /* Miscellaneous Mathematical Symbols-B */
#define TT_UCR_MATHEMATICAL_OPERATORS (1L << 6) /* U+2200-U+22FF */
/* U+2A00-U+2AFF */
/* U+27C0-U+27EF */
@@ -952,60 +979,53 @@ FT_BEGIN_HEADER
#define TT_UCR_MISCELLANEOUS_SYMBOLS (1L << 14) /* U+2600-U+26FF */
/* Bit 47 Dingbats */
#define TT_UCR_DINGBATS (1L << 15) /* U+2700-U+27BF */
-
- /* CJK Phonetics and Symbols Area */
-
/* Bit 48 CJK Symbols and Punctuation */
#define TT_UCR_CJK_SYMBOLS (1L << 16) /* U+3000-U+303F */
/* Bit 49 Hiragana */
#define TT_UCR_HIRAGANA (1L << 17) /* U+3040-U+309F */
- /* Bit 50 Katakana + */
- /* Katakana Phonetic Extensions */
+ /* Bit 50 Katakana */
+ /* Katakana Phonetic Extensions */
#define TT_UCR_KATAKANA (1L << 18) /* U+30A0-U+30FF */
/* U+31F0-U+31FF */
- /* Bit 51 Bopomofo + */
- /* Bopomofo Extended */
+ /* Bit 51 Bopomofo */
+ /* Bopomofo Extended */
#define TT_UCR_BOPOMOFO (1L << 19) /* U+3100-U+312F */
/* U+31A0-U+31BF */
/* Bit 52 Hangul Compatibility Jamo */
#define TT_UCR_HANGUL_COMPATIBILITY_JAMO (1L << 20) /* U+3130-U+318F */
- /* Bit 53 Kanbun */
-#define TT_UCR_CJK_MISC (1L << 21) /* U+3190-U+319F */
-#define TT_UCR_KANBUN TT_UCR_CJK_MISC
+ /* Bit 53 Phags-Pa */
+#define TT_UCR_CJK_MISC (1L << 21) /* U+A840-U+A87F */
+#define TT_UCR_KANBUN TT_UCR_CJK_MISC /* deprecated */
+#define TT_UCR_PHAGSPA
/* Bit 54 Enclosed CJK Letters and Months */
#define TT_UCR_ENCLOSED_CJK_LETTERS_MONTHS (1L << 22) /* U+3200-U+32FF */
/* Bit 55 CJK Compatibility */
#define TT_UCR_CJK_COMPATIBILITY (1L << 23) /* U+3300-U+33FF */
-
- /* Hangul Syllables Area */
-
- /* Bit 56 Hangul */
+ /* Bit 56 Hangul Syllables */
#define TT_UCR_HANGUL (1L << 24) /* U+AC00-U+D7A3 */
-
- /* Surrogates Area */
-
- /* Bit 57 High Surrogates + */
- /* High Private Use Surrogates + */
- /* Low Surrogates */
+ /* Bit 57 High Surrogates */
+ /* High Private Use Surrogates */
+ /* Low Surrogates */
+ /* */
+ /* According to OpenType specs v.1.3+, */
+ /* setting bit 57 implies that there is */
+ /* at least one codepoint beyond the */
+ /* Basic Multilingual Plane that is */
+ /* supported by this font. So it really */
+ /* means >= U+10000 */
#define TT_UCR_SURROGATES (1L << 25) /* U+D800-U+DB7F */
/* U+DB80-U+DBFF */
/* U+DC00-U+DFFF */
- /* According to OpenType specs v.1.3+, setting bit 57 implies that there */
- /* is at least one codepoint beyond the Basic Multilingual Plane that is */
- /* supported by this font. So it really means: >= U+10000 */
-
- /* Bit 58 is reserved for Unicode SubRanges */
-
- /* CJK Ideographs Area */
-
- /* Bit 59 CJK Unified Ideographs + */
- /* CJK Radicals Supplement + */
- /* Kangxi Radicals + */
- /* Ideographic Description Characters + */
- /* CJK Unified Ideographs Extension A */
- /* CJK Unified Ideographs Extension A + */
- /* CJK Unified Ideographs Extension B + */
- /* Kanbun */
+#define TT_UCR_NON_PLANE_0 TT_UCR_SURROGATES
+ /* Bit 58 Phoenician */
+#define TT_UCR_PHOENICIAN (1L << 26) /*U+10900-U+1091F*/
+ /* Bit 59 CJK Unified Ideographs */
+ /* CJK Radicals Supplement */
+ /* Kangxi Radicals */
+ /* Ideographic Description Characters */
+ /* CJK Unified Ideographs Extension A */
+ /* CJK Unified Ideographs Extension B */
+ /* Kanbun */
#define TT_UCR_CJK_UNIFIED_IDEOGRAPHS (1L << 27) /* U+4E00-U+9FFF */
/* U+2E80-U+2EFF */
/* U+2F00-U+2FDF */
@@ -1013,17 +1033,13 @@ FT_BEGIN_HEADER
/* U+3400-U+4DB5 */
/*U+20000-U+2A6DF*/
/* U+3190-U+319F */
-
- /* Private Use Area */
-
/* Bit 60 Private Use */
#define TT_UCR_PRIVATE_USE (1L << 28) /* U+E000-U+F8FF */
-
- /* Compatibility Area and Specials */
-
- /* Bit 61 CJK Compatibility Ideographs + */
- /* CJK Compatibility Ideographs Supplement */
-#define TT_UCR_CJK_COMPATIBILITY_IDEOGRAPHS (1L << 29) /* U+F900-U+FAFF */
+ /* Bit 61 CJK Strokes */
+ /* CJK Compatibility Ideographs */
+ /* CJK Compatibility Ideographs Supplement */
+#define TT_UCR_CJK_COMPATIBILITY_IDEOGRAPHS (1L << 29) /* U+31C0-U+31EF */
+ /* U+F900-U+FAFF */
/*U+2F800-U+2FA1F*/
/* Bit 62 Alphabetic Presentation Forms */
#define TT_UCR_ALPHABETIC_PRESENTATION_FORMS (1L << 30) /* U+FB00-U+FB4F */
@@ -1031,8 +1047,10 @@ FT_BEGIN_HEADER
#define TT_UCR_ARABIC_PRESENTATIONS_A (1L << 31) /* U+FB50-U+FDFF */
/* Bit 64 Combining Half Marks */
#define TT_UCR_COMBINING_HALF_MARKS (1L << 0) /* U+FE20-U+FE2F */
- /* Bit 65 CJK Compatibility Forms */
-#define TT_UCR_CJK_COMPATIBILITY_FORMS (1L << 1) /* U+FE30-U+FE4F */
+ /* Bit 65 Vertical forms */
+ /* CJK Compatibility Forms */
+#define TT_UCR_CJK_COMPATIBILITY_FORMS (1L << 1) /* U+FE10-U+FE1F */
+ /* U+FE30-U+FE4F */
/* Bit 66 Small Form Variants */
#define TT_UCR_SMALL_FORM_VARIANTS (1L << 2) /* U+FE50-U+FE6F */
/* Bit 67 Arabic Presentation Forms-B */
@@ -1051,8 +1069,12 @@ FT_BEGIN_HEADER
#define TT_UCR_SINHALA (1L << 9) /* U+0D80-U+0DFF */
/* Bit 74 Myanmar */
#define TT_UCR_MYANMAR (1L << 10) /* U+1000-U+109F */
- /* Bit 75 Ethiopic */
+ /* Bit 75 Ethiopic */
+ /* Ethiopic Supplement */
+ /* Ethiopic Extended */
#define TT_UCR_ETHIOPIC (1L << 11) /* U+1200-U+137F */
+ /* U+1380-U+139F */
+ /* U+2D80-U+2DDF */
/* Bit 76 Cherokee */
#define TT_UCR_CHEROKEE (1L << 12) /* U+13A0-U+13FF */
/* Bit 77 Unified Canadian Aboriginal Syllabics */
@@ -1061,20 +1083,22 @@ FT_BEGIN_HEADER
#define TT_UCR_OGHAM (1L << 14) /* U+1680-U+169F */
/* Bit 79 Runic */
#define TT_UCR_RUNIC (1L << 15) /* U+16A0-U+16FF */
- /* Bit 80 Khmer */
+ /* Bit 80 Khmer */
+ /* Khmer Symbols */
#define TT_UCR_KHMER (1L << 16) /* U+1780-U+17FF */
+ /* U+19E0-U+19FF */
/* Bit 81 Mongolian */
#define TT_UCR_MONGOLIAN (1L << 17) /* U+1800-U+18AF */
/* Bit 82 Braille Patterns */
#define TT_UCR_BRAILLE (1L << 18) /* U+2800-U+28FF */
- /* Bit 83 Yi Syllables + */
- /* Yi Radicals */
+ /* Bit 83 Yi Syllables */
+ /* Yi Radicals */
#define TT_UCR_YI (1L << 19) /* U+A000-U+A48F */
/* U+A490-U+A4CF */
- /* Bit 84 Tagalog + */
- /* Hanunoo + */
- /* Buhid + */
- /* Tagbanwa */
+ /* Bit 84 Tagalog */
+ /* Hanunoo */
+ /* Buhid */
+ /* Tagbanwa */
#define TT_UCR_PHILIPPINE (1L << 20) /* U+1700-U+171F */
/* U+1720-U+173F */
/* U+1740-U+175F */
@@ -1085,20 +1109,97 @@ FT_BEGIN_HEADER
#define TT_UCR_GOTHIC (1L << 22) /*U+10330-U+1034F*/
/* Bit 87 Deseret */
#define TT_UCR_DESERET (1L << 23) /*U+10400-U+1044F*/
- /* Bit 88 Byzantine Musical Symbols + */
- /* Musical Symbols */
+ /* Bit 88 Byzantine Musical Symbols */
+ /* Musical Symbols */
+ /* Ancient Greek Musical Notation */
#define TT_UCR_MUSICAL_SYMBOLS (1L << 24) /*U+1D000-U+1D0FF*/
/*U+1D100-U+1D1FF*/
+ /*U+1D200-U+1D24F*/
/* Bit 89 Mathematical Alphanumeric Symbols */
#define TT_UCR_MATH_ALPHANUMERIC_SYMBOLS (1L << 25) /*U+1D400-U+1D7FF*/
- /* Bit 90 Private Use (plane 15) + */
- /* Private Use (plane 16) */
+ /* Bit 90 Private Use (plane 15) */
+ /* Private Use (plane 16) */
#define TT_UCR_PRIVATE_USE_SUPPLEMENTARY (1L << 26) /*U+F0000-U+FFFFD*/
/*U+100000-U+10FFFD*/
- /* Bit 91 Variation Selectors */
+ /* Bit 91 Variation Selectors */
+ /* Variation Selectors Supplement */
#define TT_UCR_VARIATION_SELECTORS (1L << 27) /* U+FE00-U+FE0F */
+ /*U+E0100-U+E01EF*/
/* Bit 92 Tags */
#define TT_UCR_TAGS (1L << 28) /*U+E0000-U+E007F*/
+ /* Bit 93 Limbu */
+#define TT_UCR_LIMBU (1L << 29) /* U+1900-U+194F */
+ /* Bit 94 Tai Le */
+#define TT_UCR_TAI_LE (1L << 30) /* U+1950-U+197F */
+ /* Bit 95 New Tai Lue */
+#define TT_UCR_NEW_TAI_LUE (1L << 31) /* U+1980-U+19DF */
+ /* Bit 96 Buginese */
+#define TT_UCR_BUGINESE (1L << 0) /* U+1A00-U+1A1F */
+ /* Bit 97 Glagolitic */
+#define TT_UCR_GLAGOLITIC (1L << 1) /* U+2C00-U+2C5F */
+ /* Bit 98 Tifinagh */
+#define TT_UCR_TIFINAGH (1L << 2) /* U+2D30-U+2D7F */
+ /* Bit 99 Yijing Hexagram Symbols */
+#define TT_UCR_YIJING (1L << 3) /* U+4DC0-U+4DFF */
+ /* Bit 100 Syloti Nagri */
+#define TT_UCR_SYLOTI_NAGRI (1L << 4) /* U+A800-U+A82F */
+ /* Bit 101 Linear B Syllabary */
+ /* Linear B Ideograms */
+ /* Aegean Numbers */
+#define TT_UCR_LINEAR_B (1L << 5) /*U+10000-U+1007F*/
+ /*U+10080-U+100FF*/
+ /*U+10100-U+1013F*/
+ /* Bit 102 Ancient Greek Numbers */
+#define TT_UCR_ANCIENT_GREEK_NUMBERS (1L << 6) /*U+10140-U+1018F*/
+ /* Bit 103 Ugaritic */
+#define TT_UCR_UGARITIC (1L << 7) /*U+10380-U+1039F*/
+ /* Bit 104 Old Persian */
+#define TT_UCR_OLD_PERSIAN (1L << 8) /*U+103A0-U+103DF*/
+ /* Bit 105 Shavian */
+#define TT_UCR_SHAVIAN (1L << 9) /*U+10450-U+1047F*/
+ /* Bit 106 Osmanya */
+#define TT_UCR_OSMANYA (1L << 10) /*U+10480-U+104AF*/
+ /* Bit 107 Cypriot Syllabary */
+#define TT_UCR_CYPRIOT_SYLLABARY (1L << 11) /*U+10800-U+1083F*/
+ /* Bit 108 Kharoshthi */
+#define TT_UCR_KHAROSHTHI (1L << 12) /*U+10A00-U+10A5F*/
+ /* Bit 109 Tai Xuan Jing Symbols */
+#define TT_UCR_TAI_XUAN_JING (1L << 13) /*U+1D300-U+1D35F*/
+ /* Bit 110 Cuneiform */
+ /* Cuneiform Numbers and Punctuation */
+#define TT_UCR_CUNEIFORM (1L << 14) /*U+12000-U+123FF*/
+ /*U+12400-U+1247F*/
+ /* Bit 111 Counting Rod Numerals */
+#define TT_UCR_COUNTING_ROD_NUMERALS (1L << 15) /*U+1D360-U+1D37F*/
+ /* Bit 112 Sundanese */
+#define TT_UCR_SUNDANESE (1L << 16) /* U+1B80-U+1BBF */
+ /* Bit 113 Lepcha */
+#define TT_UCR_LEPCHA (1L << 17) /* U+1C00-U+1C4F */
+ /* Bit 114 Ol Chiki */
+#define TT_UCR_OL_CHIKI (1L << 18) /* U+1C50-U+1C7F */
+ /* Bit 115 Saurashtra */
+#define TT_UCR_SAURASHTRA (1L << 19) /* U+A880-U+A8DF */
+ /* Bit 116 Kayah Li */
+#define TT_UCR_KAYAH_LI (1L << 20) /* U+A900-U+A92F */
+ /* Bit 117 Rejang */
+#define TT_UCR_REJANG (1L << 21) /* U+A930-U+A95F */
+ /* Bit 118 Cham */
+#define TT_UCR_CHAM (1L << 22) /* U+AA00-U+AA5F */
+ /* Bit 119 Ancient Symbols */
+#define TT_UCR_ANCIENT_SYMBOLS (1L << 23) /*U+10190-U+101CF*/
+ /* Bit 120 Phaistos Disc */
+#define TT_UCR_PHAISTOS_DISC (1L << 24) /*U+101D0-U+101FF*/
+ /* Bit 121 Carian */
+ /* Lycian */
+ /* Lydian */
+#define TT_UCR_OLD_ANATOLIAN (1L << 25) /*U+102A0-U+102DF*/
+ /*U+10280-U+1029F*/
+ /*U+10920-U+1093F*/
+ /* Bit 122 Domino Tiles */
+ /* Mahjong Tiles */
+#define TT_UCR_GAME_TILES (1L << 26) /*U+1F030-U+1F09F*/
+ /*U+1F000-U+1F02F*/
+ /* Bit 123-127 Reserved for process-internal usage */
/*************************************************************************/
@@ -1117,7 +1218,7 @@ FT_BEGIN_HEADER
/* */
/* Here some alias #defines in order to be clearer. */
/* */
- /* These are not always #defined to stay within the 31 character limit */
+ /* These are not always #defined to stay within the 31~character limit */
/* which some compilers have. */
/* */
/* Credits go to Dave Hoo <dhoo@flash.net> for pointing out that modern */
diff --git a/include/freetype/tttables.h b/include/freetype/tttables.h
index 79edb0e..c12b172 100644
--- a/include/freetype/tttables.h
+++ b/include/freetype/tttables.h
@@ -5,7 +5,7 @@
/* Basic SFNT/TrueType tables definitions and interface */
/* (specification only). */
/* */
-/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2008 by */
+/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2008, 2009 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -156,9 +156,9 @@ FT_BEGIN_HEADER
/* caret_Slope_Run :: The run coefficient of the cursor's */
/* slope. */
/* */
- /* Reserved :: 8 reserved bytes. */
+ /* Reserved :: 8~reserved bytes. */
/* */
- /* metric_Data_Format :: Always 0. */
+ /* metric_Data_Format :: Always~0. */
/* */
/* number_Of_HMetrics :: Number of HMetrics entries in the `hmtx' */
/* table -- this value can be smaller than */
@@ -281,9 +281,9 @@ FT_BEGIN_HEADER
/* This value is `reserved' in vmtx */
/* version 1.0. */
/* */
- /* Reserved :: 8 reserved bytes. */
+ /* Reserved :: 8~reserved bytes. */
/* */
- /* metric_Data_Format :: Always 0. */
+ /* metric_Data_Format :: Always~0. */
/* */
/* number_Of_HMetrics :: Number of VMetrics entries in the */
/* `vmtx' table -- this value can be */
@@ -406,9 +406,9 @@ FT_BEGIN_HEADER
/* TT_Postscript */
/* */
/* <Description> */
- /* A structure used to model a TrueType Postscript table. All fields */
+ /* A structure used to model a TrueType PostScript table. All fields */
/* comply to the TrueType specification. This structure does not */
- /* reference the Postscript glyph names, which can be nevertheless */
+ /* reference the PostScript glyph names, which can be nevertheless */
/* accessed with the `ttpost' module. */
/* */
typedef struct TT_Postscript_
@@ -578,7 +578,7 @@ FT_BEGIN_HEADER
/* FT_Get_Sfnt_Table */
/* */
/* <Description> */
- /* Returns a pointer to a given SFNT table within a face. */
+ /* Return a pointer to a given SFNT table within a face. */
/* */
/* <Input> */
/* face :: A handle to the source. */
@@ -586,7 +586,7 @@ FT_BEGIN_HEADER
/* tag :: The index of the SFNT table. */
/* */
/* <Return> */
- /* A type-less pointer to the table. This will be 0 in case of */
+ /* A type-less pointer to the table. This will be~0 in case of */
/* error, or if the corresponding table was not found *OR* loaded */
/* from the file. */
/* */
@@ -608,14 +608,14 @@ FT_BEGIN_HEADER
* FT_Load_Sfnt_Table
*
* @description:
- * Loads any font table into client memory.
+ * Load any font table into client memory.
*
* @input:
* face ::
* A handle to the source face.
*
* tag ::
- * The four-byte tag of the table to load. Use the value 0 if you want
+ * The four-byte tag of the table to load. Use the value~0 if you want
* to access the whole font file. Otherwise, you can use one of the
* definitions found in the @FT_TRUETYPE_TAGS_H file, or forge a new
* one with @FT_MAKE_TAG.
@@ -633,18 +633,18 @@ FT_BEGIN_HEADER
* If the `length' parameter is NULL, then try to load the whole table.
* Return an error code if it fails.
*
- * Else, if `*length' is 0, exit immediately while returning the
+ * Else, if `*length' is~0, exit immediately while returning the
* table's (or file) full size in it.
*
* Else the number of bytes to read from the table or file, from the
* starting offset.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
* If you need to determine the table's length you should first call this
- * function with `*length' set to 0, as in the following example:
+ * function with `*length' set to~0, as in the following example:
*
* {
* FT_ULong length = 0;
@@ -674,7 +674,7 @@ FT_BEGIN_HEADER
* FT_Sfnt_Table_Info
*
* @description:
- * Returns information on an SFNT table.
+ * Return information on an SFNT table.
*
* @input:
* face ::
@@ -692,10 +692,10 @@ FT_BEGIN_HEADER
* The length of the SFNT table.
*
* @return:
- * FreeType error code. 0 means success.
+ * FreeType error code. 0~means success.
*
* @note:
- * SFNT tables with length zero are treated as missing by Windows.
+ * SFNT tables with length zero are treated as missing.
*
*/
FT_EXPORT( FT_Error )
@@ -720,7 +720,7 @@ FT_BEGIN_HEADER
/* */
/* <Return> */
/* The language ID of `charmap'. If `charmap' doesn't belong to a */
- /* TrueType/sfnt face, just return 0 as the default value. */
+ /* TrueType/sfnt face, just return~0 as the default value. */
/* */
FT_EXPORT( FT_ULong )
FT_Get_CMap_Language_ID( FT_CharMap charmap );
diff --git a/include/freetype/tttags.h b/include/freetype/tttags.h
index 5a79008..307ce4b 100644
--- a/include/freetype/tttags.h
+++ b/include/freetype/tttags.h
@@ -4,7 +4,7 @@
/* */
/* Tags for TrueType and OpenType tables (specification only). */
/* */
-/* Copyright 1996-2001, 2004, 2005, 2007 by */
+/* Copyright 1996-2001, 2004, 2005, 2007, 2008 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -41,6 +41,7 @@ FT_BEGIN_HEADER
#define TTAG_bloc FT_MAKE_TAG( 'b', 'l', 'o', 'c' )
#define TTAG_bsln FT_MAKE_TAG( 'b', 's', 'l', 'n' )
#define TTAG_CFF FT_MAKE_TAG( 'C', 'F', 'F', ' ' )
+#define TTAG_CID FT_MAKE_TAG( 'C', 'I', 'D', ' ' )
#define TTAG_cmap FT_MAKE_TAG( 'c', 'm', 'a', 'p' )
#define TTAG_cvar FT_MAKE_TAG( 'c', 'v', 'a', 'r' )
#define TTAG_cvt FT_MAKE_TAG( 'c', 'v', 't', ' ' )
@@ -49,6 +50,7 @@ FT_BEGIN_HEADER
#define TTAG_EBLC FT_MAKE_TAG( 'E', 'B', 'L', 'C' )
#define TTAG_EBSC FT_MAKE_TAG( 'E', 'B', 'S', 'C' )
#define TTAG_feat FT_MAKE_TAG( 'f', 'e', 'a', 't' )
+#define TTAG_FOND FT_MAKE_TAG( 'F', 'O', 'N', 'D' )
#define TTAG_fpgm FT_MAKE_TAG( 'f', 'p', 'g', 'm' )
#define TTAG_fvar FT_MAKE_TAG( 'f', 'v', 'a', 'r' )
#define TTAG_gasp FT_MAKE_TAG( 'g', 'a', 's', 'p' )
@@ -67,6 +69,7 @@ FT_BEGIN_HEADER
#define TTAG_lcar FT_MAKE_TAG( 'l', 'c', 'a', 'r' )
#define TTAG_loca FT_MAKE_TAG( 'l', 'o', 'c', 'a' )
#define TTAG_LTSH FT_MAKE_TAG( 'L', 'T', 'S', 'H' )
+#define TTAG_LWFN FT_MAKE_TAG( 'L', 'W', 'F', 'N' )
#define TTAG_MATH FT_MAKE_TAG( 'M', 'A', 'T', 'H' )
#define TTAG_maxp FT_MAKE_TAG( 'm', 'a', 'x', 'p' )
#define TTAG_META FT_MAKE_TAG( 'M', 'E', 'T', 'A' )
@@ -79,14 +82,18 @@ FT_BEGIN_HEADER
#define TTAG_OS2 FT_MAKE_TAG( 'O', 'S', '/', '2' )
#define TTAG_OTTO FT_MAKE_TAG( 'O', 'T', 'T', 'O' )
#define TTAG_PCLT FT_MAKE_TAG( 'P', 'C', 'L', 'T' )
+#define TTAG_POST FT_MAKE_TAG( 'P', 'O', 'S', 'T' )
#define TTAG_post FT_MAKE_TAG( 'p', 'o', 's', 't' )
#define TTAG_prep FT_MAKE_TAG( 'p', 'r', 'e', 'p' )
#define TTAG_prop FT_MAKE_TAG( 'p', 'r', 'o', 'p' )
+#define TTAG_sfnt FT_MAKE_TAG( 's', 'f', 'n', 't' )
#define TTAG_SING FT_MAKE_TAG( 'S', 'I', 'N', 'G' )
#define TTAG_trak FT_MAKE_TAG( 't', 'r', 'a', 'k' )
#define TTAG_true FT_MAKE_TAG( 't', 'r', 'u', 'e' )
#define TTAG_ttc FT_MAKE_TAG( 't', 't', 'c', ' ' )
#define TTAG_ttcf FT_MAKE_TAG( 't', 't', 'c', 'f' )
+#define TTAG_TYP1 FT_MAKE_TAG( 'T', 'Y', 'P', '1' )
+#define TTAG_typ1 FT_MAKE_TAG( 't', 'y', 'p', '1' )
#define TTAG_VDMX FT_MAKE_TAG( 'V', 'D', 'M', 'X' )
#define TTAG_vhea FT_MAKE_TAG( 'v', 'h', 'e', 'a' )
#define TTAG_vmtx FT_MAKE_TAG( 'v', 'm', 't', 'x' )