updated freetype to 2.3.7
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26495 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
1ef720e9b1
commit
82e3aced80
@ -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>
|
||||
@ -483,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>
|
||||
@ -496,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
|
||||
@ -516,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
|
||||
@ -537,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.
|
||||
@ -553,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
|
||||
@ -570,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>
|
||||
@ -583,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).
|
||||
*
|
||||
*/
|
||||
@ -597,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).
|
||||
*
|
||||
*/
|
||||
@ -611,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).
|
||||
*
|
||||
*/
|
||||
@ -625,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>
|
||||
@ -638,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>
|
||||
|
||||
@ -650,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>
|
||||
|
||||
@ -662,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>
|
||||
@ -675,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>
|
||||
@ -688,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>
|
||||
|
||||
@ -700,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>
|
||||
|
||||
@ -712,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>
|
||||
|
||||
@ -724,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>
|
||||
|
||||
|
@ -86,10 +86,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 */
|
||||
@ -485,7 +485,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: */
|
||||
/* */
|
||||
@ -527,7 +527,7 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
/* <Values> */
|
||||
/* FT_ENCODING_NONE :: */
|
||||
/* The encoding value 0 is reserved. */
|
||||
/* The encoding value~0 is reserved. */
|
||||
/* */
|
||||
/* FT_ENCODING_UNICODE :: */
|
||||
/* Corresponds to the Unicode character set. This value covers */
|
||||
@ -559,26 +559,26 @@ FT_BEGIN_HEADER
|
||||
/* `http://www.microsoft.com/typography/unicode/949.txt'. */
|
||||
/* */
|
||||
/* FT_ENCODING_JOHAB :: */
|
||||
/* The Korean standard character set (KS C-5601-1992), which */
|
||||
/* 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. */
|
||||
/* 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, */
|
||||
/* 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, */
|
||||
/* 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 */
|
||||
/* 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 :: */
|
||||
@ -607,7 +607,7 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* By default, FreeType automatically synthetizes a Unicode charmap */
|
||||
/* for Postscript fonts, using their glyph names dictionaries. */
|
||||
/* 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. */
|
||||
@ -630,16 +630,16 @@ FT_BEGIN_HEADER
|
||||
/* 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 */
|
||||
/* 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, */
|
||||
/* 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_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. */
|
||||
@ -753,7 +753,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 +774,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 +790,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 +841,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, */
|
||||
@ -1099,7 +1106,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.
|
||||
*
|
||||
*/
|
||||
@ -1461,7 +1468,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 +1491,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,7 +1513,7 @@ 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 */
|
||||
@ -1609,7 +1616,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 +1635,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 );
|
||||
@ -1648,8 +1655,8 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
/* 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. */
|
||||
/* */
|
||||
@ -1731,7 +1738,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. */
|
||||
@ -1794,7 +1801,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 +1809,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 +1836,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 +1844,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 +1874,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 +1882,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 +1891,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 +1924,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 +1939,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 +1950,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 +1979,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 +2001,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,
|
||||
@ -2120,7 +2127,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 +2162,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 */
|
||||
@ -2194,7 +2201,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 +2234,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 +2275,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 +2297,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,7 +2387,7 @@ 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
|
||||
@ -2451,7 +2458,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.
|
||||
*
|
||||
@ -2526,9 +2533,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> */
|
||||
@ -2553,17 +2560,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. */
|
||||
/* */
|
||||
/* 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 */
|
||||
@ -2572,18 +2581,19 @@ 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 */
|
||||
/* 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> */
|
||||
@ -2643,7 +2653,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,
|
||||
@ -2661,7 +2671,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. */
|
||||
@ -2739,7 +2749,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 */
|
||||
@ -2774,7 +2784,7 @@ FT_BEGIN_HEADER
|
||||
/* 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,
|
||||
@ -2790,7 +2800,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. */
|
||||
@ -2805,12 +2815,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. */
|
||||
@ -2832,14 +2842,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 */
|
||||
@ -2865,7 +2875,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 */
|
||||
@ -2897,14 +2907,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,
|
||||
@ -2947,13 +2957,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 )
|
||||
@ -2975,7 +2985,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> */
|
||||
@ -3000,9 +3010,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 */
|
||||
/* when the value~0 is the first valid character code. */
|
||||
/* */
|
||||
FT_EXPORT( FT_ULong )
|
||||
FT_Get_First_Char( FT_Face face,
|
||||
@ -3024,7 +3034,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 first character code. 0~if charmap */
|
||||
/* is empty. */
|
||||
/* */
|
||||
/* <Return> */
|
||||
@ -3035,7 +3045,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 )
|
||||
@ -3059,7 +3069,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,
|
||||
@ -3128,7 +3138,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,8 +3165,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 */
|
||||
@ -3170,10 +3180,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. */
|
||||
/* */
|
||||
@ -3205,7 +3215,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'. */
|
||||
/* */
|
||||
@ -3213,7 +3223,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 */
|
||||
@ -3250,7 +3260,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> */
|
||||
@ -3284,7 +3294,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. */
|
||||
/* */
|
||||
@ -3317,7 +3327,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. */
|
||||
/* */
|
||||
@ -3351,7 +3361,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. */
|
||||
/* */
|
||||
@ -3474,8 +3484,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 )
|
||||
@ -3601,7 +3611,7 @@ FT_BEGIN_HEADER
|
||||
*/
|
||||
#define FREETYPE_MAJOR 2
|
||||
#define FREETYPE_MINOR 3
|
||||
#define FREETYPE_PATCH 6
|
||||
#define FREETYPE_PATCH 7
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
@ -3658,8 +3668,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 */
|
||||
|
@ -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,
|
||||
|
@ -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,7 +176,7 @@ 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
|
||||
|
@ -72,7 +72,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 +83,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,11 +114,11 @@ 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. */
|
||||
@ -152,7 +152,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 */
|
||||
@ -184,7 +184,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 */
|
||||
|
@ -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
|
||||
@ -615,7 +615,7 @@ FT_BEGIN_HEADER
|
||||
* 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 +721,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 +730,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 +743,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 +753,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 +761,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 +806,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 +814,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. */
|
||||
@ -873,11 +873,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 +926,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 +935,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 +948,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 +966,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 +974,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 +1021,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 +1029,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 */
|
||||
|
@ -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
|
||||
|
@ -31,11 +31,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.
|
||||
*/
|
||||
|
@ -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. */
|
||||
/* */
|
||||
@ -228,7 +228,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 +248,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 +265,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 +375,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,7 +421,7 @@ 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. */
|
||||
@ -431,7 +431,7 @@ FT_BEGIN_HEADER
|
||||
/* 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,7 +440,7 @@ FT_BEGIN_HEADER
|
||||
/* never destroyed in case of error. */
|
||||
/* */
|
||||
/* <Return> */
|
||||
/* FreeType error code. 0 means success. */
|
||||
/* FreeType error code. 0~means success. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* The glyph image is translated with the `origin' vector before */
|
||||
@ -497,7 +497,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 +524,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 +546,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 );
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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,17 +119,17 @@ 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 */
|
||||
/* of value `gray' levels is stored in the `num_grays' field of */
|
||||
/* the @FT_Bitmap structure (it generally is 256). */
|
||||
/* */
|
||||
/* FT_PIXEL_MODE_GRAY2 :: */
|
||||
@ -207,10 +207,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 +317,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 +352,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_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_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_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_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_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_SMART_DROPOUTS :: */
|
||||
/* Select smart dropout control. If unset, use simple dropout */
|
||||
/* control. Ignored if @FT_OUTLINE_IGNORE_DROPOUTS is set. */
|
||||
/* */
|
||||
/* 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_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 +489,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 +516,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 +547,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 +579,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 +625,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 +658,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 +690,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 +710,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 +822,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 +848,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 +865,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 +896,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 +924,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 +1071,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 +1171,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 +1181,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 */
|
||||
|
@ -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
|
||||
|
@ -119,7 +119,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 +141,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
|
||||
|
@ -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. */
|
||||
|
@ -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.
|
||||
|
@ -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 */
|
||||
|
@ -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,7 +251,7 @@ 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. */
|
||||
@ -262,7 +262,7 @@ FT_BEGIN_HEADER
|
||||
/* (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,
|
||||
|
@ -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). */
|
||||
/* */
|
||||
|
@ -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
|
||||
|
@ -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. */
|
||||
@ -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 */
|
||||
@ -134,7 +134,7 @@ FT_BEGIN_HEADER
|
||||
/* error. */
|
||||
/* */
|
||||
/* <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 +160,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 +169,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 +200,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 +212,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 +240,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 +262,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 +273,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 +286,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 +310,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 +325,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 */
|
||||
@ -352,7 +352,7 @@ 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> */
|
||||
@ -375,7 +375,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 +387,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,7 +412,7 @@ FT_BEGIN_HEADER
|
||||
/* FT_Outline_Render */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* Renders an outline within a bitmap using the current scan-convert. */
|
||||
/* Render an outline within a bitmap using the current scan-convert. */
|
||||
/* This functions uses an @FT_Raster_Params structure as an argument, */
|
||||
/* allowing advanced features like direct composition, translucency, */
|
||||
/* etc. */
|
||||
@ -422,7 +427,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 +437,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 +456,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 +465,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 +475,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 ::
|
||||
|
@ -80,7 +80,7 @@ FT_BEGIN_HEADER
|
||||
* 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
|
||||
|
@ -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 */
|
||||
|
@ -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 );
|
||||
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -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,
|
||||
@ -297,17 +297,17 @@ 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
|
||||
* 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 1, the outline is processed as an open path, and the
|
||||
* If `opened' is~1, the outline is processed as an open path, and the
|
||||
* stroker will generate 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,7 +362,7 @@ 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.
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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,
|
||||
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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 ) | \
|
||||
|
@ -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
|
||||
|
@ -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 :: */
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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,24 +468,24 @@ 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 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.
|
||||
*
|
||||
*/
|
||||
|
@ -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
|
||||
@ -1117,7 +1117,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 */
|
||||
|
@ -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,7 +692,7 @@ 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.
|
||||
@ -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 );
|
||||
|
@ -33,6 +33,7 @@
|
||||
|
||||
|
||||
#include <ft2build.h>
|
||||
#include FT_GLYPH_H
|
||||
#include FT_INTERNAL_CALC_H
|
||||
#include FT_INTERNAL_DEBUG_H
|
||||
#include FT_INTERNAL_OBJECTS_H
|
||||
@ -430,8 +431,8 @@
|
||||
"shll $16, %%edx\n"
|
||||
"addl %%edx, %%eax\n"
|
||||
"mov %%eax, %0\n"
|
||||
: "=r"(result)
|
||||
: "a"(a), "d"(b)
|
||||
: "=a"(result), "+d"(b)
|
||||
: "a"(a)
|
||||
: "%ecx"
|
||||
);
|
||||
return result;
|
||||
@ -666,6 +667,59 @@
|
||||
#endif /* FT_LONG64 */
|
||||
|
||||
|
||||
/* documentation is in ftglyph.h */
|
||||
|
||||
FT_EXPORT_DEF( void )
|
||||
FT_Matrix_Multiply( const FT_Matrix* a,
|
||||
FT_Matrix *b )
|
||||
{
|
||||
FT_Fixed xx, xy, yx, yy;
|
||||
|
||||
|
||||
if ( !a || !b )
|
||||
return;
|
||||
|
||||
xx = FT_MulFix( a->xx, b->xx ) + FT_MulFix( a->xy, b->yx );
|
||||
xy = FT_MulFix( a->xx, b->xy ) + FT_MulFix( a->xy, b->yy );
|
||||
yx = FT_MulFix( a->yx, b->xx ) + FT_MulFix( a->yy, b->yx );
|
||||
yy = FT_MulFix( a->yx, b->xy ) + FT_MulFix( a->yy, b->yy );
|
||||
|
||||
b->xx = xx; b->xy = xy;
|
||||
b->yx = yx; b->yy = yy;
|
||||
}
|
||||
|
||||
|
||||
/* documentation is in ftglyph.h */
|
||||
|
||||
FT_EXPORT_DEF( FT_Error )
|
||||
FT_Matrix_Invert( FT_Matrix* matrix )
|
||||
{
|
||||
FT_Pos delta, xx, yy;
|
||||
|
||||
|
||||
if ( !matrix )
|
||||
return FT_Err_Invalid_Argument;
|
||||
|
||||
/* compute discriminant */
|
||||
delta = FT_MulFix( matrix->xx, matrix->yy ) -
|
||||
FT_MulFix( matrix->xy, matrix->yx );
|
||||
|
||||
if ( !delta )
|
||||
return FT_Err_Invalid_Argument; /* matrix can't be inverted */
|
||||
|
||||
matrix->xy = - FT_DivFix( matrix->xy, delta );
|
||||
matrix->yx = - FT_DivFix( matrix->yx, delta );
|
||||
|
||||
xx = matrix->xx;
|
||||
yy = matrix->yy;
|
||||
|
||||
matrix->xx = FT_DivFix( yy, delta );
|
||||
matrix->yy = FT_DivFix( xx, delta );
|
||||
|
||||
return FT_Err_Ok;
|
||||
}
|
||||
|
||||
|
||||
/* documentation is in ftcalc.h */
|
||||
|
||||
FT_BASE_DEF( void )
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* FreeType convenience functions to handle glyphs (body). */
|
||||
/* */
|
||||
/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2007 by */
|
||||
/* Copyright 1996-2001, 2002, 2003, 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, */
|
||||
@ -45,68 +45,6 @@
|
||||
#define FT_COMPONENT trace_glyph
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/**** ****/
|
||||
/**** Convenience functions ****/
|
||||
/**** ****/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
|
||||
|
||||
/* documentation is in ftglyph.h */
|
||||
|
||||
FT_EXPORT_DEF( void )
|
||||
FT_Matrix_Multiply( const FT_Matrix* a,
|
||||
FT_Matrix *b )
|
||||
{
|
||||
FT_Fixed xx, xy, yx, yy;
|
||||
|
||||
|
||||
if ( !a || !b )
|
||||
return;
|
||||
|
||||
xx = FT_MulFix( a->xx, b->xx ) + FT_MulFix( a->xy, b->yx );
|
||||
xy = FT_MulFix( a->xx, b->xy ) + FT_MulFix( a->xy, b->yy );
|
||||
yx = FT_MulFix( a->yx, b->xx ) + FT_MulFix( a->yy, b->yx );
|
||||
yy = FT_MulFix( a->yx, b->xy ) + FT_MulFix( a->yy, b->yy );
|
||||
|
||||
b->xx = xx; b->xy = xy;
|
||||
b->yx = yx; b->yy = yy;
|
||||
}
|
||||
|
||||
|
||||
/* documentation is in ftglyph.h */
|
||||
|
||||
FT_EXPORT_DEF( FT_Error )
|
||||
FT_Matrix_Invert( FT_Matrix* matrix )
|
||||
{
|
||||
FT_Pos delta, xx, yy;
|
||||
|
||||
|
||||
if ( !matrix )
|
||||
return FT_Err_Invalid_Argument;
|
||||
|
||||
/* compute discriminant */
|
||||
delta = FT_MulFix( matrix->xx, matrix->yy ) -
|
||||
FT_MulFix( matrix->xy, matrix->yx );
|
||||
|
||||
if ( !delta )
|
||||
return FT_Err_Invalid_Argument; /* matrix can't be inverted */
|
||||
|
||||
matrix->xy = - FT_DivFix( matrix->xy, delta );
|
||||
matrix->yx = - FT_DivFix( matrix->yx, delta );
|
||||
|
||||
xx = matrix->xx;
|
||||
yy = matrix->yy;
|
||||
|
||||
matrix->xx = FT_DivFix( yy, delta );
|
||||
matrix->yy = FT_DivFix( xx, delta );
|
||||
|
||||
return FT_Err_Ok;
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/**** ****/
|
||||
|
@ -77,8 +77,8 @@
|
||||
#define OS_INLINE static __inline__
|
||||
#endif
|
||||
|
||||
/* The ResourceIndex type was only added in the 10.5 SDK */
|
||||
#ifndef MAC_OS_X_VERSION_10_5
|
||||
/* The ResourceIndex type was available SDKs on 10.5 */
|
||||
#ifndef HAVE_TYPE_RESOURCE_INDEX
|
||||
typedef short ResourceIndex;
|
||||
#endif
|
||||
|
||||
@ -134,7 +134,7 @@ typedef short ResourceIndex;
|
||||
FSRef* ats_font_ref )
|
||||
{
|
||||
#if defined( MAC_OS_X_VERSION_10_5 ) && \
|
||||
MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
|
||||
( MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 )
|
||||
|
||||
OSStatus err;
|
||||
|
||||
@ -235,7 +235,7 @@ typedef short ResourceIndex;
|
||||
FT_Long* face_index )
|
||||
{
|
||||
#if ( __LP64__ ) || ( defined( MAC_OS_X_VERSION_10_5 ) && \
|
||||
MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 )
|
||||
( MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 ) )
|
||||
FT_UNUSED( fontName );
|
||||
FT_UNUSED( pathSpec );
|
||||
FT_UNUSED( face_index );
|
||||
@ -1108,7 +1108,7 @@ typedef short ResourceIndex;
|
||||
FT_Face* aface )
|
||||
{
|
||||
#if ( __LP64__ ) || ( defined( MAC_OS_X_VERSION_10_5 ) && \
|
||||
MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 )
|
||||
( MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 ) )
|
||||
FT_UNUSED( library );
|
||||
FT_UNUSED( spec );
|
||||
FT_UNUSED( face_index );
|
||||
|
@ -534,6 +534,111 @@
|
||||
goto Bad_Format;
|
||||
}
|
||||
|
||||
if ( !dict->units_per_em )
|
||||
dict->units_per_em = pure_cff ? 1000 : face->root.units_per_EM;
|
||||
|
||||
/* Normalize the font matrix so that `matrix->xx' is 1; the */
|
||||
/* scaling is done with `units_per_em' then (at this point, */
|
||||
/* it already contains the scaling factor, but without */
|
||||
/* normalization of the matrix). */
|
||||
/* */
|
||||
/* Note that the offsets must be expressed in integer font */
|
||||
/* units. */
|
||||
|
||||
{
|
||||
FT_Matrix* matrix = &dict->font_matrix;
|
||||
FT_Vector* offset = &dict->font_offset;
|
||||
FT_ULong* upm = &dict->units_per_em;
|
||||
FT_Fixed temp = FT_ABS( matrix->yy );
|
||||
|
||||
|
||||
if ( temp != 0x10000L )
|
||||
{
|
||||
*upm = FT_DivFix( *upm, temp );
|
||||
|
||||
matrix->xx = FT_DivFix( matrix->xx, temp );
|
||||
matrix->yx = FT_DivFix( matrix->yx, temp );
|
||||
matrix->xy = FT_DivFix( matrix->xy, temp );
|
||||
matrix->yy = FT_DivFix( matrix->yy, temp );
|
||||
offset->x = FT_DivFix( offset->x, temp );
|
||||
offset->y = FT_DivFix( offset->y, temp );
|
||||
}
|
||||
|
||||
offset->x >>= 16;
|
||||
offset->y >>= 16;
|
||||
}
|
||||
|
||||
for ( i = cff->num_subfonts; i > 0; i-- )
|
||||
{
|
||||
CFF_FontRecDict sub = &cff->subfonts[i - 1]->font_dict;
|
||||
CFF_FontRecDict top = &cff->top_font.font_dict;
|
||||
|
||||
FT_Matrix* matrix;
|
||||
FT_Vector* offset;
|
||||
FT_ULong* upm;
|
||||
FT_Fixed temp;
|
||||
|
||||
|
||||
if ( sub->units_per_em )
|
||||
{
|
||||
FT_Int scaling;
|
||||
|
||||
|
||||
if ( top->units_per_em > 1 && sub->units_per_em > 1 )
|
||||
scaling = FT_MIN( top->units_per_em, sub->units_per_em );
|
||||
else
|
||||
scaling = 1;
|
||||
|
||||
FT_Matrix_Multiply_Scaled( &top->font_matrix,
|
||||
&sub->font_matrix,
|
||||
scaling );
|
||||
FT_Vector_Transform_Scaled( &sub->font_offset,
|
||||
&top->font_matrix,
|
||||
scaling );
|
||||
|
||||
sub->units_per_em = FT_MulDiv( sub->units_per_em,
|
||||
top->units_per_em,
|
||||
scaling );
|
||||
}
|
||||
else
|
||||
{
|
||||
sub->font_matrix = top->font_matrix;
|
||||
sub->font_offset = top->font_offset;
|
||||
|
||||
sub->units_per_em = top->units_per_em;
|
||||
}
|
||||
|
||||
matrix = &sub->font_matrix;
|
||||
offset = &sub->font_offset;
|
||||
upm = &sub->units_per_em;
|
||||
temp = FT_ABS( matrix->yy );
|
||||
|
||||
if ( temp != 0x10000L )
|
||||
{
|
||||
*upm = FT_DivFix( *upm, temp );
|
||||
|
||||
/* if *upm is larger than 100*1000 we divide by 1000 -- */
|
||||
/* this can happen if e.g. there is no top-font FontMatrix */
|
||||
/* and the subfont FontMatrix already contains the complete */
|
||||
/* scaling for the subfont (see section 5.11 of the PLRM) */
|
||||
|
||||
/* 100 is a heuristic value */
|
||||
|
||||
if ( *upm > 100L * 1000L )
|
||||
*upm = ( *upm + 500 ) / 1000;
|
||||
|
||||
matrix->xx = FT_DivFix( matrix->xx, temp );
|
||||
matrix->yx = FT_DivFix( matrix->yx, temp );
|
||||
matrix->xy = FT_DivFix( matrix->xy, temp );
|
||||
matrix->yy = FT_DivFix( matrix->yy, temp );
|
||||
offset->x = FT_DivFix( offset->x, temp );
|
||||
offset->y = FT_DivFix( offset->y, temp );
|
||||
}
|
||||
|
||||
offset->x >>= 16;
|
||||
offset->y >>= 16;
|
||||
}
|
||||
|
||||
if ( pure_cff )
|
||||
{
|
||||
char* style_name = NULL;
|
||||
@ -554,8 +659,6 @@
|
||||
cffface->bbox.xMax = ( dict->font_bbox.xMax + 0xFFFFU ) >> 16;
|
||||
cffface->bbox.yMax = ( dict->font_bbox.yMax + 0xFFFFU ) >> 16;
|
||||
|
||||
if ( !dict->units_per_em )
|
||||
dict->units_per_em = 1000;
|
||||
|
||||
cffface->units_per_EM = dict->units_per_em;
|
||||
|
||||
@ -711,113 +814,7 @@
|
||||
|
||||
cffface->style_flags = flags;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( !dict->units_per_em )
|
||||
dict->units_per_em = face->root.units_per_EM;
|
||||
}
|
||||
|
||||
/* Normalize the font matrix so that `matrix->xx' is 1; the */
|
||||
/* scaling is done with `units_per_em' then (at this point, */
|
||||
/* it already contains the scaling factor, but without */
|
||||
/* normalization of the matrix). */
|
||||
/* */
|
||||
/* Note that the offsets must be expressed in integer font */
|
||||
/* units. */
|
||||
|
||||
{
|
||||
FT_Matrix* matrix = &dict->font_matrix;
|
||||
FT_Vector* offset = &dict->font_offset;
|
||||
FT_ULong* upm = &dict->units_per_em;
|
||||
FT_Fixed temp = FT_ABS( matrix->yy );
|
||||
|
||||
|
||||
if ( temp != 0x10000L )
|
||||
{
|
||||
*upm = FT_DivFix( *upm, temp );
|
||||
|
||||
matrix->xx = FT_DivFix( matrix->xx, temp );
|
||||
matrix->yx = FT_DivFix( matrix->yx, temp );
|
||||
matrix->xy = FT_DivFix( matrix->xy, temp );
|
||||
matrix->yy = FT_DivFix( matrix->yy, temp );
|
||||
offset->x = FT_DivFix( offset->x, temp );
|
||||
offset->y = FT_DivFix( offset->y, temp );
|
||||
}
|
||||
|
||||
offset->x >>= 16;
|
||||
offset->y >>= 16;
|
||||
}
|
||||
|
||||
for ( i = cff->num_subfonts; i > 0; i-- )
|
||||
{
|
||||
CFF_FontRecDict sub = &cff->subfonts[i - 1]->font_dict;
|
||||
CFF_FontRecDict top = &cff->top_font.font_dict;
|
||||
|
||||
FT_Matrix* matrix;
|
||||
FT_Vector* offset;
|
||||
FT_ULong* upm;
|
||||
FT_Fixed temp;
|
||||
|
||||
|
||||
if ( sub->units_per_em )
|
||||
{
|
||||
FT_Int scaling;
|
||||
|
||||
|
||||
if ( top->units_per_em > 1 && sub->units_per_em > 1 )
|
||||
scaling = FT_MIN( top->units_per_em, sub->units_per_em );
|
||||
else
|
||||
scaling = 1;
|
||||
|
||||
FT_Matrix_Multiply_Scaled( &top->font_matrix,
|
||||
&sub->font_matrix,
|
||||
scaling );
|
||||
FT_Vector_Transform_Scaled( &sub->font_offset,
|
||||
&top->font_matrix,
|
||||
scaling );
|
||||
|
||||
sub->units_per_em = FT_MulDiv( sub->units_per_em,
|
||||
top->units_per_em,
|
||||
scaling );
|
||||
}
|
||||
else
|
||||
{
|
||||
sub->font_matrix = top->font_matrix;
|
||||
sub->font_offset = top->font_offset;
|
||||
|
||||
sub->units_per_em = top->units_per_em;
|
||||
}
|
||||
|
||||
matrix = &sub->font_matrix;
|
||||
offset = &sub->font_offset;
|
||||
upm = &sub->units_per_em;
|
||||
temp = FT_ABS( matrix->yy );
|
||||
|
||||
if ( temp != 0x10000L )
|
||||
{
|
||||
*upm = FT_DivFix( *upm, temp );
|
||||
|
||||
/* if *upm is larger than 100*1000 we divide by 1000 -- */
|
||||
/* this can happen if e.g. there is no top-font FontMatrix */
|
||||
/* and the subfont FontMatrix already contains the complete */
|
||||
/* scaling for the subfont (see section 5.11 of the PLRM) */
|
||||
|
||||
/* 100 is a heuristic value */
|
||||
|
||||
if ( *upm > 100L * 1000L )
|
||||
*upm = ( *upm + 500 ) / 1000;
|
||||
|
||||
matrix->xx = FT_DivFix( matrix->xx, temp );
|
||||
matrix->yx = FT_DivFix( matrix->yx, temp );
|
||||
matrix->xy = FT_DivFix( matrix->xy, temp );
|
||||
matrix->yy = FT_DivFix( matrix->yy, temp );
|
||||
offset->x = FT_DivFix( offset->x, temp );
|
||||
offset->y = FT_DivFix( offset->y, temp );
|
||||
}
|
||||
|
||||
offset->x >>= 16;
|
||||
offset->y >>= 16;
|
||||
}
|
||||
|
||||
#ifndef FT_CONFIG_OPTION_NO_GLYPH_NAMES
|
||||
/* CID-keyed CFF fonts don't have glyph names -- the SFNT loader */
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* OpenType GPOS table validation (body). */
|
||||
/* */
|
||||
/* Copyright 2002, 2004, 2005, 2006, 2007 by */
|
||||
/* Copyright 2002, 2004, 2005, 2006, 2007, 2008 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
@ -644,7 +644,10 @@
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
|
||||
/* sets valid->extra2 (0) */
|
||||
/* UNDOCUMENTED (in OpenType 1.5): */
|
||||
/* BaseRecord tables can contain NULL pointers. */
|
||||
|
||||
/* sets valid->extra2 (1) */
|
||||
|
||||
static void
|
||||
otv_MarkBasePos_validate( FT_Bytes table,
|
||||
@ -664,7 +667,7 @@
|
||||
switch ( PosFormat )
|
||||
{
|
||||
case 1:
|
||||
valid->extra2 = 0;
|
||||
valid->extra2 = 1;
|
||||
OTV_NEST2( MarkBasePosFormat1, BaseArray );
|
||||
OTV_RUN( table, valid );
|
||||
break;
|
||||
|
@ -1634,27 +1634,24 @@
|
||||
t1_builder_close_contour( T1_Builder builder )
|
||||
{
|
||||
FT_Outline* outline = builder->current;
|
||||
FT_Int first;
|
||||
|
||||
|
||||
if ( !outline )
|
||||
return;
|
||||
|
||||
/* XXXX: We must not include the last point in the path if it */
|
||||
/* is located on the first point. */
|
||||
first = outline->n_contours <= 1
|
||||
? 0 : outline->contours[outline->n_contours - 2] + 1;
|
||||
|
||||
/* We must not include the last point in the path if it */
|
||||
/* is located on the first point. */
|
||||
if ( outline->n_points > 1 )
|
||||
{
|
||||
FT_Int first = 0;
|
||||
FT_Vector* p1 = outline->points + first;
|
||||
FT_Vector* p2 = outline->points + outline->n_points - 1;
|
||||
FT_Byte* control = (FT_Byte*)outline->tags + outline->n_points - 1;
|
||||
|
||||
|
||||
if ( outline->n_contours > 1 )
|
||||
{
|
||||
first = outline->contours[outline->n_contours - 2] + 1;
|
||||
p1 = outline->points + first;
|
||||
}
|
||||
|
||||
/* `delete' last point only if it coincides with the first */
|
||||
/* point and it is not a control point (which can happen). */
|
||||
if ( p1->x == p2->x && p1->y == p2->y )
|
||||
@ -1663,8 +1660,18 @@
|
||||
}
|
||||
|
||||
if ( outline->n_contours > 0 )
|
||||
outline->contours[outline->n_contours - 1] =
|
||||
(short)( outline->n_points - 1 );
|
||||
{
|
||||
/* Don't add contours only consisting of one point, i.e., */
|
||||
/* check whether begin point and last point are the same. */
|
||||
if ( first == outline->n_points - 1 )
|
||||
{
|
||||
outline->n_contours--;
|
||||
outline->n_points--;
|
||||
}
|
||||
else
|
||||
outline->contours[outline->n_contours - 1] =
|
||||
(short)( outline->n_points - 1 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -2150,8 +2150,10 @@ static const char count_table[256] =
|
||||
f1 = (Byte) ( 0xFF >> ( e1 & 7 ) );
|
||||
f2 = (Byte) ~( 0x7F >> ( e2 & 7 ) );
|
||||
|
||||
if ( ras.gray_min_x > c1 ) ras.gray_min_x = (short)c1;
|
||||
if ( ras.gray_max_x < c2 ) ras.gray_max_x = (short)c2;
|
||||
if ( ras.gray_min_x > c1 )
|
||||
ras.gray_min_x = (short)c1;
|
||||
if ( ras.gray_max_x < c2 )
|
||||
ras.gray_max_x = (short)c2;
|
||||
|
||||
target = ras.bTarget + ras.traceOfs + c1;
|
||||
c2 -= c1;
|
||||
@ -2184,14 +2186,36 @@ static const char count_table[256] =
|
||||
PProfile left,
|
||||
PProfile right )
|
||||
{
|
||||
Long e1, e2;
|
||||
Long e1, e2, pxl;
|
||||
Short c1, f1;
|
||||
|
||||
|
||||
/* Drop-out control */
|
||||
|
||||
e1 = CEILING( x1 );
|
||||
e2 = FLOOR ( x2 );
|
||||
/* e2 x2 x1 e1 */
|
||||
/* */
|
||||
/* ^ | */
|
||||
/* | | */
|
||||
/* +-------------+---------------------+------------+ */
|
||||
/* | | */
|
||||
/* | v */
|
||||
/* */
|
||||
/* pixel contour contour pixel */
|
||||
/* center center */
|
||||
|
||||
/* drop-out mode scan conversion rules (as defined in OpenType) */
|
||||
/* --------------------------------------------------------------- */
|
||||
/* 0 1, 2, 3 */
|
||||
/* 1 1, 2, 4 */
|
||||
/* 2 1, 2 */
|
||||
/* 3 same as mode 2 */
|
||||
/* 4 1, 2, 5 */
|
||||
/* 5 1, 2, 6 */
|
||||
/* 6, 7 same as mode 2 */
|
||||
|
||||
e1 = CEILING( x1 );
|
||||
e2 = FLOOR ( x2 );
|
||||
pxl = e1;
|
||||
|
||||
if ( e1 > e2 )
|
||||
{
|
||||
@ -2199,19 +2223,20 @@ static const char count_table[256] =
|
||||
{
|
||||
switch ( ras.dropOutControl )
|
||||
{
|
||||
case 1:
|
||||
e1 = e2;
|
||||
case 0: /* simple drop-outs including stubs */
|
||||
pxl = e2;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
e1 = CEILING( (x1 + x2 + 1) / 2 );
|
||||
case 4: /* smart drop-outs including stubs */
|
||||
pxl = FLOOR( ( x1 + x2 + 1 ) / 2 + ras.precision_half );
|
||||
break;
|
||||
|
||||
case 2:
|
||||
case 5:
|
||||
/* Drop-out Control Rule #4 */
|
||||
case 1: /* simple drop-outs excluding stubs */
|
||||
case 5: /* smart drop-outs excluding stubs */
|
||||
|
||||
/* The spec is not very clear regarding rule #4. It */
|
||||
/* Drop-out Control Rules #4 and #6 */
|
||||
|
||||
/* The spec is not very clear regarding those rules. It */
|
||||
/* presents a method that is way too costly to implement */
|
||||
/* while the general idea seems to get rid of `stubs'. */
|
||||
/* */
|
||||
@ -2233,7 +2258,6 @@ static const char count_table[256] =
|
||||
/* FIXXXME: uncommenting this line solves the disappearing */
|
||||
/* bit problem in the `7' of verdana 10pts, but */
|
||||
/* makes a new one in the `C' of arial 14pts */
|
||||
|
||||
#if 0
|
||||
if ( x2 - x1 < ras.precision_half )
|
||||
#endif
|
||||
@ -2247,41 +2271,43 @@ static const char count_table[256] =
|
||||
return;
|
||||
}
|
||||
|
||||
/* check that the rightmost pixel isn't set */
|
||||
|
||||
e1 = TRUNC( e1 );
|
||||
|
||||
c1 = (Short)( e1 >> 3 );
|
||||
f1 = (Short)( e1 & 7 );
|
||||
|
||||
if ( e1 >= 0 && e1 < ras.bWidth &&
|
||||
ras.bTarget[ras.traceOfs + c1] & ( 0x80 >> f1 ) )
|
||||
return;
|
||||
|
||||
if ( ras.dropOutControl == 2 )
|
||||
e1 = e2;
|
||||
if ( ras.dropOutControl == 1 )
|
||||
pxl = e2;
|
||||
else
|
||||
e1 = CEILING( ( x1 + x2 + 1 ) / 2 );
|
||||
|
||||
pxl = FLOOR( ( x1 + x2 + 1 ) / 2 + ras.precision_half );
|
||||
break;
|
||||
|
||||
default:
|
||||
return; /* unsupported mode */
|
||||
default: /* modes 2, 3, 6, 7 */
|
||||
return; /* no drop-out control */
|
||||
}
|
||||
|
||||
/* check that the other pixel isn't set */
|
||||
e1 = pxl == e1 ? e2 : e1;
|
||||
|
||||
e1 = TRUNC( e1 );
|
||||
|
||||
c1 = (Short)( e1 >> 3 );
|
||||
f1 = (Short)( e1 & 7 );
|
||||
|
||||
if ( e1 >= 0 && e1 < ras.bWidth &&
|
||||
ras.bTarget[ras.traceOfs + c1] & ( 0x80 >> f1 ) )
|
||||
return;
|
||||
}
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
e1 = TRUNC( e1 );
|
||||
e1 = TRUNC( pxl );
|
||||
|
||||
if ( e1 >= 0 && e1 < ras.bWidth )
|
||||
{
|
||||
c1 = (Short)( e1 >> 3 );
|
||||
f1 = (Short)( e1 & 7 );
|
||||
|
||||
if ( ras.gray_min_x > c1 ) ras.gray_min_x = c1;
|
||||
if ( ras.gray_max_x < c1 ) ras.gray_max_x = c1;
|
||||
if ( ras.gray_min_x > c1 )
|
||||
ras.gray_min_x = c1;
|
||||
if ( ras.gray_max_x < c1 )
|
||||
ras.gray_max_x = c1;
|
||||
|
||||
ras.bTarget[ras.traceOfs + c1] |= (char)( 0x80 >> f1 );
|
||||
}
|
||||
@ -2365,15 +2391,26 @@ static const char count_table[256] =
|
||||
PProfile left,
|
||||
PProfile right )
|
||||
{
|
||||
Long e1, e2;
|
||||
Long e1, e2, pxl;
|
||||
PByte bits;
|
||||
Byte f1;
|
||||
|
||||
|
||||
/* During the horizontal sweep, we only take care of drop-outs */
|
||||
|
||||
e1 = CEILING( x1 );
|
||||
e2 = FLOOR ( x2 );
|
||||
/* e1 + <-- pixel center */
|
||||
/* | */
|
||||
/* x1 ---+--> <-- contour */
|
||||
/* | */
|
||||
/* | */
|
||||
/* x2 <--+--- <-- contour */
|
||||
/* | */
|
||||
/* | */
|
||||
/* e2 + <-- pixel center */
|
||||
|
||||
e1 = CEILING( x1 );
|
||||
e2 = FLOOR ( x2 );
|
||||
pxl = e1;
|
||||
|
||||
if ( e1 > e2 )
|
||||
{
|
||||
@ -2381,23 +2418,17 @@ static const char count_table[256] =
|
||||
{
|
||||
switch ( ras.dropOutControl )
|
||||
{
|
||||
case 1:
|
||||
e1 = e2;
|
||||
case 0: /* simple drop-outs including stubs */
|
||||
pxl = e2;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
e1 = CEILING( ( x1 + x2 + 1 ) / 2 );
|
||||
case 4: /* smart drop-outs including stubs */
|
||||
pxl = FLOOR( ( x1 + x2 + 1 ) / 2 + ras.precision_half );
|
||||
break;
|
||||
|
||||
case 2:
|
||||
case 5:
|
||||
|
||||
/* Drop-out Control Rule #4 */
|
||||
|
||||
/* The spec is not very clear regarding rule #4. It */
|
||||
/* presents a method that is way too costly to implement */
|
||||
/* while the general idea seems to get rid of `stubs'. */
|
||||
/* */
|
||||
case 1: /* simple drop-outs excluding stubs */
|
||||
case 5: /* smart drop-outs excluding stubs */
|
||||
/* see Vertical_Sweep_Drop for details */
|
||||
|
||||
/* rightmost stub test */
|
||||
if ( left->next == right && left->height <= 0 )
|
||||
@ -2407,32 +2438,32 @@ static const char count_table[256] =
|
||||
if ( right->next == left && left->start == y )
|
||||
return;
|
||||
|
||||
/* check that the rightmost pixel isn't set */
|
||||
|
||||
e1 = TRUNC( e1 );
|
||||
|
||||
bits = ras.bTarget + ( y >> 3 );
|
||||
f1 = (Byte)( 0x80 >> ( y & 7 ) );
|
||||
|
||||
bits -= e1 * ras.target.pitch;
|
||||
if ( ras.target.pitch > 0 )
|
||||
bits += ( ras.target.rows - 1 ) * ras.target.pitch;
|
||||
|
||||
if ( e1 >= 0 &&
|
||||
e1 < ras.target.rows &&
|
||||
*bits & f1 )
|
||||
return;
|
||||
|
||||
if ( ras.dropOutControl == 2 )
|
||||
e1 = e2;
|
||||
if ( ras.dropOutControl == 1 )
|
||||
pxl = e2;
|
||||
else
|
||||
e1 = CEILING( ( x1 + x2 + 1 ) / 2 );
|
||||
|
||||
pxl = FLOOR( ( x1 + x2 + 1 ) / 2 + ras.precision_half );
|
||||
break;
|
||||
|
||||
default:
|
||||
return; /* unsupported mode */
|
||||
default: /* modes 2, 3, 6, 7 */
|
||||
return; /* no drop-out control */
|
||||
}
|
||||
|
||||
/* check that the other pixel isn't set */
|
||||
e1 = pxl == e1 ? e2 : e1;
|
||||
|
||||
e1 = TRUNC( e1 );
|
||||
|
||||
bits = ras.bTarget + ( y >> 3 );
|
||||
f1 = (Byte)( 0x80 >> ( y & 7 ) );
|
||||
|
||||
bits -= e1 * ras.target.pitch;
|
||||
if ( ras.target.pitch > 0 )
|
||||
bits += ( ras.target.rows - 1 ) * ras.target.pitch;
|
||||
|
||||
if ( e1 >= 0 &&
|
||||
e1 < ras.target.rows &&
|
||||
*bits & f1 )
|
||||
return;
|
||||
}
|
||||
else
|
||||
return;
|
||||
@ -2441,7 +2472,7 @@ static const char count_table[256] =
|
||||
bits = ras.bTarget + ( y >> 3 );
|
||||
f1 = (Byte)( 0x80 >> ( y & 7 ) );
|
||||
|
||||
e1 = TRUNC( e1 );
|
||||
e1 = TRUNC( pxl );
|
||||
|
||||
if ( e1 >= 0 && e1 < ras.target.rows )
|
||||
{
|
||||
@ -2627,6 +2658,7 @@ static const char count_table[256] =
|
||||
|
||||
|
||||
/* During the horizontal sweep, we only take care of drop-outs */
|
||||
|
||||
e1 = CEILING( x1 );
|
||||
e2 = FLOOR ( x2 );
|
||||
|
||||
@ -2636,23 +2668,17 @@ static const char count_table[256] =
|
||||
{
|
||||
switch ( ras.dropOutControl )
|
||||
{
|
||||
case 1:
|
||||
case 0: /* simple drop-outs including stubs */
|
||||
e1 = e2;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
e1 = CEILING( ( x1 + x2 + 1 ) / 2 );
|
||||
case 4: /* smart drop-outs including stubs */
|
||||
e1 = FLOOR( ( x1 + x2 + 1 ) / 2 + ras.precision_half );
|
||||
break;
|
||||
|
||||
case 2:
|
||||
case 5:
|
||||
|
||||
/* Drop-out Control Rule #4 */
|
||||
|
||||
/* The spec is not very clear regarding rule #4. It */
|
||||
/* presents a method that is way too costly to implement */
|
||||
/* while the general idea seems to get rid of `stubs'. */
|
||||
/* */
|
||||
case 1: /* simple drop-outs excluding stubs */
|
||||
case 5: /* smart drop-outs excluding stubs */
|
||||
/* see Vertical_Sweep_Drop for details */
|
||||
|
||||
/* rightmost stub test */
|
||||
if ( left->next == right && left->height <= 0 )
|
||||
@ -2662,15 +2688,15 @@ static const char count_table[256] =
|
||||
if ( right->next == left && left->start == y )
|
||||
return;
|
||||
|
||||
if ( ras.dropOutControl == 2 )
|
||||
if ( ras.dropOutControl == 1 )
|
||||
e1 = e2;
|
||||
else
|
||||
e1 = CEILING( ( x1 + x2 + 1 ) / 2 );
|
||||
e1 = FLOOR( ( x1 + x2 + 1 ) / 2 + ras.precision_half );
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
return; /* unsupported mode */
|
||||
default: /* modes 2, 3, 6, 7 */
|
||||
return; /* no drop-out control */
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -2742,8 +2768,10 @@ static const char count_table[256] =
|
||||
bottom = (Short)P->start;
|
||||
top = (Short)( P->start + P->height - 1 );
|
||||
|
||||
if ( min_Y > bottom ) min_Y = bottom;
|
||||
if ( max_Y < top ) max_Y = top;
|
||||
if ( min_Y > bottom )
|
||||
min_Y = bottom;
|
||||
if ( max_Y < top )
|
||||
max_Y = top;
|
||||
|
||||
P->X = 0;
|
||||
InsNew( &waiting, P );
|
||||
@ -2844,17 +2872,19 @@ static const char count_table[256] =
|
||||
e1 = FLOOR( x1 );
|
||||
e2 = CEILING( x2 );
|
||||
|
||||
if ( ras.dropOutControl != 0 &&
|
||||
( e1 > e2 || e2 == e1 + ras.precision ) )
|
||||
if ( e1 > e2 || e2 == e1 + ras.precision )
|
||||
{
|
||||
/* a drop out was detected */
|
||||
if ( ras.dropOutControl != 2 )
|
||||
{
|
||||
/* a drop out was detected */
|
||||
|
||||
P_Left ->X = x1;
|
||||
P_Right->X = x2;
|
||||
P_Left ->X = x1;
|
||||
P_Right->X = x2;
|
||||
|
||||
/* mark profile for drop-out processing */
|
||||
P_Left->countL = 1;
|
||||
dropouts++;
|
||||
/* mark profile for drop-out processing */
|
||||
P_Left->countL = 1;
|
||||
dropouts++;
|
||||
}
|
||||
|
||||
goto Skip_To_Next;
|
||||
}
|
||||
@ -3039,13 +3069,23 @@ static const char count_table[256] =
|
||||
|
||||
Set_High_Precision( RAS_VARS ras.outline.flags &
|
||||
FT_OUTLINE_HIGH_PRECISION );
|
||||
ras.scale_shift = ras.precision_shift;
|
||||
/* Drop-out mode 2 is hard-coded since this is the only mode used */
|
||||
/* on Windows platforms. Using other modes, as specified by the */
|
||||
/* font, results in misplaced pixels. */
|
||||
ras.dropOutControl = 2;
|
||||
ras.second_pass = (FT_Byte)( !( ras.outline.flags &
|
||||
FT_OUTLINE_SINGLE_PASS ) );
|
||||
ras.scale_shift = ras.precision_shift;
|
||||
|
||||
if ( ras.outline.flags & FT_OUTLINE_IGNORE_DROPOUTS )
|
||||
ras.dropOutControl = 2;
|
||||
else
|
||||
{
|
||||
if ( ras.outline.flags & FT_OUTLINE_SMART_DROPOUTS )
|
||||
ras.dropOutControl = 4;
|
||||
else
|
||||
ras.dropOutControl = 0;
|
||||
|
||||
if ( !( ras.outline.flags & FT_OUTLINE_INCLUDE_STUBS ) )
|
||||
ras.dropOutControl += 1;
|
||||
}
|
||||
|
||||
ras.second_pass = (FT_Byte)( !( ras.outline.flags &
|
||||
FT_OUTLINE_SINGLE_PASS ) );
|
||||
|
||||
/* Vertical Sweep */
|
||||
ras.Proc_Sweep_Init = Vertical_Sweep_Init;
|
||||
@ -3064,7 +3104,7 @@ static const char count_table[256] =
|
||||
return error;
|
||||
|
||||
/* Horizontal Sweep */
|
||||
if ( ras.second_pass && ras.dropOutControl != 0 )
|
||||
if ( ras.second_pass && ras.dropOutControl != 2 )
|
||||
{
|
||||
ras.Proc_Sweep_Init = Horizontal_Sweep_Init;
|
||||
ras.Proc_Sweep_Span = Horizontal_Sweep_Span;
|
||||
@ -3106,12 +3146,22 @@ static const char count_table[256] =
|
||||
|
||||
Set_High_Precision( RAS_VARS ras.outline.flags &
|
||||
FT_OUTLINE_HIGH_PRECISION );
|
||||
ras.scale_shift = ras.precision_shift + 1;
|
||||
/* Drop-out mode 2 is hard-coded since this is the only mode used */
|
||||
/* on Windows platforms. Using other modes, as specified by the */
|
||||
/* font, results in misplaced pixels. */
|
||||
ras.dropOutControl = 2;
|
||||
ras.second_pass = !( ras.outline.flags & FT_OUTLINE_SINGLE_PASS );
|
||||
ras.scale_shift = ras.precision_shift + 1;
|
||||
|
||||
if ( ras.outline.flags & FT_OUTLINE_IGNORE_DROPOUTS )
|
||||
ras.dropOutControl = 2;
|
||||
else
|
||||
{
|
||||
if ( ras.outline.flags & FT_OUTLINE_SMART_DROPOUTS )
|
||||
ras.dropOutControl = 4;
|
||||
else
|
||||
ras.dropOutControl = 0;
|
||||
|
||||
if ( !( ras.outline.flags & FT_OUTLINE_INCLUDE_STUBS ) )
|
||||
ras.dropOutControl += 1;
|
||||
}
|
||||
|
||||
ras.second_pass = !( ras.outline.flags & FT_OUTLINE_SINGLE_PASS );
|
||||
|
||||
/* Vertical Sweep */
|
||||
|
||||
@ -3139,7 +3189,7 @@ static const char count_table[256] =
|
||||
return error;
|
||||
|
||||
/* Horizontal Sweep */
|
||||
if ( ras.second_pass && ras.dropOutControl != 0 )
|
||||
if ( ras.second_pass && ras.dropOutControl != 2 )
|
||||
{
|
||||
ras.Proc_Sweep_Init = Horizontal_Sweep_Init;
|
||||
ras.Proc_Sweep_Span = Horizontal_Gray_Sweep_Span;
|
||||
@ -3351,15 +3401,15 @@ static const char count_table[256] =
|
||||
if ( !target_map->buffer )
|
||||
return Raster_Err_Invalid;
|
||||
|
||||
ras.outline = *outline;
|
||||
ras.target = *target_map;
|
||||
ras.outline = *outline;
|
||||
ras.target = *target_map;
|
||||
|
||||
worker->buff = (PLong) raster->buffer;
|
||||
worker->sizeBuff = worker->buff +
|
||||
raster->buffer_size / sizeof ( Long );
|
||||
worker->buff = (PLong) raster->buffer;
|
||||
worker->sizeBuff = worker->buff +
|
||||
raster->buffer_size / sizeof ( Long );
|
||||
#ifdef FT_RASTER_OPTION_ANTI_ALIASING
|
||||
worker->grays = raster->grays;
|
||||
worker->gray_width = raster->gray_width;
|
||||
worker->grays = raster->grays;
|
||||
worker->gray_width = raster->gray_width;
|
||||
#endif
|
||||
|
||||
return ( ( params->flags & FT_RASTER_FLAG_AA )
|
||||
|
@ -1616,15 +1616,14 @@
|
||||
|
||||
volatile int error = 0;
|
||||
|
||||
|
||||
if ( ft_setjmp( ras.jump_buffer ) == 0 )
|
||||
{
|
||||
error = FT_Outline_Decompose( &ras.outline, &func_interface, &ras );
|
||||
gray_record_cell( RAS_VAR );
|
||||
}
|
||||
else
|
||||
{
|
||||
error = ErrRaster_Memory_Overflow;
|
||||
}
|
||||
|
||||
return error;
|
||||
}
|
||||
@ -1678,10 +1677,12 @@
|
||||
ras.cubic_level <<= level;
|
||||
}
|
||||
|
||||
/* setup vertical bands */
|
||||
/* set up vertical bands */
|
||||
num_bands = (int)( ( ras.max_ey - ras.min_ey ) / ras.band_size );
|
||||
if ( num_bands == 0 ) num_bands = 1;
|
||||
if ( num_bands >= 39 ) num_bands = 39;
|
||||
if ( num_bands == 0 )
|
||||
num_bands = 1;
|
||||
if ( num_bands >= 39 )
|
||||
num_bands = 39;
|
||||
|
||||
ras.band_shoot = 0;
|
||||
|
||||
|
@ -557,10 +557,10 @@
|
||||
FT_Stream stream = loader->stream;
|
||||
|
||||
|
||||
/* we must undo the FT_FRAME_ENTER in order to point to the */
|
||||
/* composite instructions, if we find some. */
|
||||
/* we will process them later... */
|
||||
/* */
|
||||
/* we must undo the FT_FRAME_ENTER in order to point */
|
||||
/* to the composite instructions, if we find some. */
|
||||
/* We will process them later. */
|
||||
/* */
|
||||
loader->ins_pos = (FT_ULong)( FT_STREAM_POS() +
|
||||
p - limit );
|
||||
}
|
||||
@ -1668,8 +1668,8 @@
|
||||
}
|
||||
|
||||
/* adjust advance width to the value contained in the hdmx table */
|
||||
if ( !face->postscript.isFixedPitch &&
|
||||
IS_HINTED( loader->load_flags ) )
|
||||
if ( !face->postscript.isFixedPitch &&
|
||||
IS_HINTED( loader->load_flags ) )
|
||||
{
|
||||
FT_Byte* widthp;
|
||||
|
||||
@ -1958,6 +1958,40 @@
|
||||
FT_Outline_Translate( &glyph->outline, -loader.pp1.x, 0 );
|
||||
}
|
||||
|
||||
#ifdef TT_USE_BYTECODE_INTERPRETER
|
||||
|
||||
if ( IS_HINTED( load_flags ) )
|
||||
{
|
||||
if ( loader.exec->GS.scan_control )
|
||||
{
|
||||
/* convert scan conversion mode to FT_OUTLINE_XXX flags */
|
||||
switch ( loader.exec->GS.scan_type )
|
||||
{
|
||||
case 0: /* simple drop-outs including stubs */
|
||||
glyph->outline.flags |= FT_OUTLINE_INCLUDE_STUBS;
|
||||
break;
|
||||
case 1: /* simple drop-outs excluding stubs */
|
||||
/* nothing; it's the default rendering mode */
|
||||
break;
|
||||
case 4: /* smart drop-outs including stubs */
|
||||
glyph->outline.flags |= FT_OUTLINE_SMART_DROPOUTS |
|
||||
FT_OUTLINE_INCLUDE_STUBS;
|
||||
break;
|
||||
case 5: /* smart drop-outs excluding stubs */
|
||||
glyph->outline.flags |= FT_OUTLINE_SMART_DROPOUTS;
|
||||
break;
|
||||
|
||||
default: /* no drop-out control */
|
||||
glyph->outline.flags |= FT_OUTLINE_IGNORE_DROPOUTS;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
glyph->outline.flags |= FT_OUTLINE_IGNORE_DROPOUTS;
|
||||
}
|
||||
|
||||
#endif /* TT_USE_BYTECODE_INTERPRETER */
|
||||
|
||||
compute_glyph_metrics( &loader, glyph_index );
|
||||
}
|
||||
|
||||
|
@ -693,7 +693,7 @@
|
||||
/* exec :: A handle to the target execution context. */
|
||||
/* */
|
||||
/* <Return> */
|
||||
/* TrueTyoe error code. 0 means success. */
|
||||
/* TrueType error code. 0 means success. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* Only the glyph loader and debugger should call this function. */
|
||||
@ -5092,12 +5092,8 @@
|
||||
return;
|
||||
}
|
||||
|
||||
A *= 64;
|
||||
|
||||
#if 0
|
||||
if ( ( args[0] & 0x100 ) != 0 && CUR.metrics.pointSize <= A )
|
||||
if ( ( args[0] & 0x100 ) != 0 && CUR.tt_metrics.ppem < A )
|
||||
CUR.GS.scan_control = TRUE;
|
||||
#endif
|
||||
|
||||
if ( ( args[0] & 0x200 ) != 0 && CUR.tt_metrics.rotated )
|
||||
CUR.GS.scan_control = TRUE;
|
||||
@ -5105,10 +5101,8 @@
|
||||
if ( ( args[0] & 0x400 ) != 0 && CUR.tt_metrics.stretched )
|
||||
CUR.GS.scan_control = TRUE;
|
||||
|
||||
#if 0
|
||||
if ( ( args[0] & 0x800 ) != 0 && CUR.metrics.pointSize > A )
|
||||
if ( ( args[0] & 0x800 ) != 0 && CUR.tt_metrics.ppem >= A )
|
||||
CUR.GS.scan_control = FALSE;
|
||||
#endif
|
||||
|
||||
if ( ( args[0] & 0x1000 ) != 0 && CUR.tt_metrics.rotated )
|
||||
CUR.GS.scan_control = FALSE;
|
||||
@ -5127,16 +5121,8 @@
|
||||
static void
|
||||
Ins_SCANTYPE( INS_ARG )
|
||||
{
|
||||
/* for compatibility with future enhancements, */
|
||||
/* we must ignore new modes */
|
||||
|
||||
if ( args[0] >= 0 && args[0] <= 5 )
|
||||
{
|
||||
if ( args[0] == 3 )
|
||||
args[0] = 2;
|
||||
|
||||
if ( args[0] >= 0 )
|
||||
CUR.GS.scan_type = (FT_Int)args[0];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -90,7 +90,7 @@
|
||||
FT_LOCAL_DEF( FT_Error )
|
||||
T1_Size_Init( T1_Size size )
|
||||
{
|
||||
FT_Error error = 0;
|
||||
FT_Error error = T1_Err_Ok;
|
||||
PSH_Globals_Funcs funcs = T1_Size_Get_Globals_Funcs( size );
|
||||
|
||||
|
||||
@ -254,8 +254,8 @@
|
||||
face->unicode_map = NULL;
|
||||
#endif
|
||||
|
||||
face->root.family_name = 0;
|
||||
face->root.style_name = 0;
|
||||
face->root.family_name = NULL;
|
||||
face->root.style_name = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@ -355,15 +355,19 @@
|
||||
|
||||
/* XXX: TODO -- add kerning with .afm support */
|
||||
|
||||
|
||||
/* The following code to extract the family and the style is very */
|
||||
/* simplistic and might get some things wrong. For a full-featured */
|
||||
/* algorithm you might have a look at the whitepaper given at */
|
||||
/* */
|
||||
/* http://blogs.msdn.com/text/archive/2007/04/23/wpf-font-selection-model.aspx */
|
||||
|
||||
/* get style name -- be careful, some broken fonts only */
|
||||
/* have a `/FontName' dictionary entry! */
|
||||
root->family_name = info->family_name;
|
||||
/* assume "Regular" style if we don't know better */
|
||||
root->style_name = (char *)"Regular";
|
||||
root->style_name = NULL;
|
||||
|
||||
if ( info->weight )
|
||||
root->style_name = info->weight;
|
||||
else if ( root->family_name )
|
||||
if ( root->family_name )
|
||||
{
|
||||
char* full = info->full_name;
|
||||
char* family = root->family_name;
|
||||
@ -371,6 +375,9 @@
|
||||
|
||||
if ( full )
|
||||
{
|
||||
FT_Bool the_same = TRUE;
|
||||
|
||||
|
||||
while ( *full )
|
||||
{
|
||||
if ( *full == *family )
|
||||
@ -386,12 +393,17 @@
|
||||
family++;
|
||||
else
|
||||
{
|
||||
the_same = FALSE;
|
||||
|
||||
if ( !*family )
|
||||
root->style_name = full;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( the_same )
|
||||
root->style_name = (char *)"Regular";
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -401,6 +413,15 @@
|
||||
root->family_name = type1->font_name;
|
||||
}
|
||||
|
||||
if ( !root->style_name )
|
||||
{
|
||||
if ( info->weight )
|
||||
root->style_name = info->weight;
|
||||
else
|
||||
/* assume `Regular' style because we don't know better */
|
||||
root->style_name = (char *)"Regular";
|
||||
}
|
||||
|
||||
/* compute style flags */
|
||||
root->style_flags = 0;
|
||||
if ( info->italic_angle )
|
||||
@ -445,7 +466,7 @@
|
||||
if ( !error )
|
||||
root->max_advance_width = (FT_Short)max_advance;
|
||||
else
|
||||
error = 0; /* clear error */
|
||||
error = T1_Err_Ok; /* clear error */
|
||||
}
|
||||
|
||||
root->max_advance_height = root->height;
|
||||
|
Loading…
Reference in New Issue
Block a user