Update bundled FreeType to 2.6.1

Change-Id: Ic489f8aa8ad42da3922f542e6c9064afe44f3799
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
This commit is contained in:
Konstantin Ritt 2015-11-02 07:10:28 +04:00
parent e056be144a
commit dba44cd4e5
499 changed files with 10584 additions and 8625 deletions

View File

@ -1,4 +1,4 @@
FreeType 2.5.5 FreeType 2.6.1
============== ==============
Homepage: http://www.freetype.org Homepage: http://www.freetype.org
@ -24,9 +24,9 @@
and download one of the following files. and download one of the following files.
freetype-doc-2.5.5.tar.bz2 freetype-doc-2.6.1.tar.bz2
freetype-doc-2.5.5.tar.gz freetype-doc-2.6.1.tar.gz
ftdoc255.zip ftdoc261.zip
To view the documentation online, go to To view the documentation online, go to
@ -42,6 +42,7 @@
general use and discussion: freetype@nongnu.org general use and discussion: freetype@nongnu.org
engine internals, porting, etc.: freetype-devel@nongnu.org engine internals, porting, etc.: freetype-devel@nongnu.org
announcements: freetype-announce@nongnu.org announcements: freetype-announce@nongnu.org
git repository tracker: freetype-commit@nongnu.org
The lists are moderated; see The lists are moderated; see
@ -70,7 +71,7 @@
---------------------------------------------------------------------- ----------------------------------------------------------------------
Copyright 2006-2014 by Copyright 2006-2015 by
David Turner, Robert Wilhelm, and Werner Lemberg. David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used, This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Unix-specific FreeType low-level system interface (body). */ /* Unix-specific FreeType low-level system interface (body). */
/* */ /* */
/* Copyright 1996-2002, 2004-2008, 2013 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -1,3 +1,189 @@
CHANGES BETWEEN 2.6 and 2.6.1
I. IMPORTANT BUG FIXES
- It turned out that for CFFs only the advance widths should be
taken from the `htmx' table, not the side bearings. This bug,
introduced in version 2.6.0, makes it necessary to upgrade if
you are using CFFs; otherwise, you get cropped glyphs with GUI
interfaces like GTK or Qt.
- Accessing Type 42 fonts returned incorrect results if the glyph
order of the embedded TrueType font differs from the glyph order
of the Type 42 charstrings table.
II. IMPORTANT CHANGES
- The header file layout has been changed (again), moving all
header files except `ft2build.h' into a subdirectory tree.
Doing so reduces the possibility of header file name clashes
(e.g., FTGL's `FTGlyph.h' with FreeType's `ftglyph.h') on case
insensitive file systems like Mac OS X or Windows.
Applications that use (a) the `freetype-config' script or
FreeType's `freetype2.pc' file for pkg-config to get the include
directory for the compiler, and (b) the documented way for
header inclusion like
#include <ft2build.h>
#include FT_FREETYPE_H
...
don't need any change to the source code.
- Simple access to named instances in GX variation fonts is now
available (in addition to the previous method via FreeType's MM
interface). In the `FT_Face' structure, bits 16-30 of the
`face_index' field hold the current named instance index for the
given face index, and bits 16-30 of `style_flags' contain the
number of instances for the given face index. `FT_Open_Face'
and friends also understand the extended bits of the face index
parameter.
You need to enable TT_CONFIG_OPTION_GX_VAR_SUPPORT for this new
feature. Otherwise, bits 16-30 of the two fields are zero (or
are ignored).
- Lao script support has been added to the auto-hinter.
III. MISCELLANEOUS
- The auto-hinter's Arabic script support has been enhanced.
- Superscript-like and subscript-like glyphs as used by various
phonetic alphabets like the IPA are now better supported by the
auto-hinter.
- The TrueType bytecode interpreter now runs slightly faster.
- Improved support for builds with cmake.
- The function `FT_CeilFix' now always rounds towards plus
infinity.
- The function `FT_FloorFix' now always rounds towards minus
infinity.
- A new load flag `FT_LOAD_COMPUTE_METRICS' has been added; it
makes FreeType ignore pre-computed metrics, as needed by font
validating or font editing programs. Right now, only the
TrueType module supports it to ignore data from the `hdmx'
table.
- Another round of bug fixes to better handle broken fonts, found
by Kostya Serebryany <kcc@google.com>.
======================================================================
CHANGES BETWEEN 2.5.5 and 2.6
I. IMPORTANT CHANGES
- Behdad Esfahbod contributed code for improved thread-safety,
which results in the following model.
* An `FT_Face' object can only be safely used from one thread at
a time.
* An `FT_Library' object can now be used without modification
from multiple threads at the same time.
* `FT_Face' creation and destruction with the same `FT_Library'
object can only be done from one thread at a time.
One can use a single `FT_Library' object across threads as long
as a mutex lock is used around `FT_New_Face' and `FT_Done_Face'.
Any calls to `FT_Load_Glyph' and similar API are safe and do not
need the lock to be held as long as the same `FT_Face' is not
used from multiple threads at the same time.
- Thai script support has been added to the auto-hinter.
- Arabic script support has been added to the auto-hinter.
- Following OpenType version 1.7, advance widths and side bearing
values in CFFs (wrapped in an SFNT structure) are now always
taken from the `hmtx' table.
- Following OpenType version 1.7, the PostScript font name of a
CFF font (wrapped in an SFNT structure) is now always taken from
the `name' table. This is also true for OpenType Collections
(i.e., TTCs using CFFs subfonts instead of TTFs), where it may
have a significant difference.
- Fonts natively hinted for ClearType are now supported, properly
handling selector index 3 of the INSTCTRL bytecode instruction.
- Major improvements to the GX TrueType variation font handling.
II. MISCELLANEOUS
- A new auto-hinter property `warping' can switch on and off the
warping code if this experimental feature is compiled in (by
defining the AF_CONFIG_OPTION_USE_WARPER configuration option;
by default this option is now enabled but warping is switched
off).
The AF_CONFIG_OPTION_USE_WARPER option itself is an old feature,
available since 2006. Warping only works in `light'
auto-hinting mode. The idea of the code is to slightly scale
and shift a glyph along the non-hinted dimension (which is
usually the horizontal axis) so that as much of its segments are
aligned (more or less) to the grid. To find out a glyph's
optimal scaling and shifting value, various parameter
combinations are tried and scored.
See file `ftautoh.h' for more; the demo programs `ftdiff',
`ftview', and `ftgrid' can toggle warping with key `w'.
- Some fields in the `FTC_ImageTypeRec' structure have been
changed from signed to unsigned type, which better reflects the
actual usage. It is also an additional means to protect against
malformed input.
This change doesn't break the ABI; however, it might cause
compiler warnings.
- Function `FT_Bitmap_New' has been renamed to `FT_Bitmap_Init',
since this name better reflects its function. For backwards
compatibility, the old function name is still available.
- Function `FT_Get_X11_Font_Format' has been renamed to
`FT_Get_Font_Format', since this name better reflects its
function. For backwards compatibility, the old function name is
still available.
Additionally, the header file macro for this function has been
renamed to `FT_FONT_FORMATS_H' (the old name `FT_XFREE86_H' is
retained for backwards compatibility).
- Various improvements to the `ftgrid' demo program.
. It can now display GX and MM fonts while interactively
manipulating the axes (with keys F2, F3, and F4).
. Anti-aliasing rendering modes can now be selected (with keys
F5 and F6).
. The display of point numbers can be toggled with key `D'.
- Various improvements to the `ftdump' demo program.
. It now displays information on MM and GX variation axes.
. New command line option `-u' makes it output data in utf-8
encoding.
- The `ftmulti' demo program can now handle up to six MM or GX
axes.
======================================================================
CHANGES BETWEEN 2.5.4 and 2.5.5 CHANGES BETWEEN 2.5.4 and 2.5.5
@ -4159,7 +4345,7 @@ Extensions support:
------------------------------------------------------------------------ ------------------------------------------------------------------------
Copyright 2000-2013 by Copyright 2000-2015 by
David Turner, Robert Wilhelm, and Werner Lemberg. David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used, This file is part of the FreeType project, and may only be used,

View File

@ -8,7 +8,7 @@ How to customize the compilation of the library
I. Configuration macros I. Configuration macros
The file found in `include/config/ftoption.h' contains a list of The file `include/freetype/config/ftoption.h' contains a list of
commented configuration macros that can be toggled by developers to commented configuration macros that can be toggled by developers to
indicate which features should be active while building the library. indicate which features should be active while building the library.
@ -35,9 +35,9 @@ II. Modules list
can keep the source files `clean'. can keep the source files `clean'.
If you don't use GNU make you have to manually edit the file If you don't use GNU make you have to manually edit the file
`include/config/ftmodule.h' (which is *not* used with if compiled `include/freetype/config/ftmodule.h' (which is *not* used with if
with GNU make) to add or remove the drivers and components you want compiled with GNU make) to add or remove the drivers and components
to compile into the library. See `INSTALL.ANY' for more you want to compile into the library. See `INSTALL.ANY' for more
information. information.
@ -95,8 +95,9 @@ IV. Overriding default configuration and module headers
#include FT_CONFIG_OPTIONS_H #include FT_CONFIG_OPTIONS_H
#include FT_CONFIG_MODULES_H #include FT_CONFIG_MODULES_H
are compiled. Their default values being <config/ftoption.h> and are compiled. Their default values being
<config/ftmodule.h>, you can do something like: <freetype/config/ftoption.h> and <freetype/config/ftmodule.h>, you
can do something like:
custom/ custom/
config/ config/
@ -122,7 +123,7 @@ IV. Overriding default configuration and module headers
#define FT_CONFIG_OPTIONS_H <custom/my-ftoption.h> #define FT_CONFIG_OPTIONS_H <custom/my-ftoption.h>
#define FT_CONFIG_MODULES_H <custom/my-ftmodule.h> #define FT_CONFIG_MODULES_H <custom/my-ftmodule.h>
#include <config/ftheader.h> #include <freetype/config/ftheader.h>
#endif /* __FT2_BUILD_MY_PLATFORM_H__ */ #endif /* __FT2_BUILD_MY_PLATFORM_H__ */
@ -138,7 +139,7 @@ IV. Overriding default configuration and module headers
---------------------------------------------------------------------- ----------------------------------------------------------------------
Copyright 2003, 2005, 2006, 2012, 2013 by Copyright 2003-2015 by
David Turner, Robert Wilhelm, and Werner Lemberg. David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used, This file is part of the FreeType project, and may only be used,

View File

@ -191,7 +191,7 @@ behaviour of FreeType at runtime.
------------------------------------------------------------------------ ------------------------------------------------------------------------
Copyright 2002-2005, 2009, 2013 by Copyright 2002-2015 by
David Turner, Robert Wilhelm, and Werner Lemberg. David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used, This file is part of the FreeType project, and may only be used,

View File

@ -27,7 +27,7 @@ Other bugs have been registered at the savannah bugzilla of FreeType.
------------------------------------------------------------------------ ------------------------------------------------------------------------
Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007 by Copyright 2001-2015 by
David Turner, Robert Wilhelm, and Werner Lemberg. David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used, This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
/* */ /* */
/* ANSI-specific configuration file (specification only). */ /* ANSI-specific configuration file (specification only). */
/* */ /* */
/* Copyright 1996-2004, 2006-2008, 2010-2011, 2013, 2014 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -319,11 +319,28 @@ FT_BEGIN_HEADER
#endif #endif
/*************************************************************************/
/* */
/* miscellaneous */
/* */
/*************************************************************************/
#define FT_BEGIN_STMNT do { #define FT_BEGIN_STMNT do {
#define FT_END_STMNT } while ( 0 ) #define FT_END_STMNT } while ( 0 )
#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT #define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT
/* typeof condition taken from gnulib's `intprops.h' header file */
#if ( __GNUC__ >= 2 || \
defined( __IBM__TYPEOF__ ) || \
( __SUNPRO_C >= 0x5110 && !__STDC__ ) )
#define FT_TYPEOF( type ) (__typeof__ (type))
#else
#define FT_TYPEOF( type ) /* empty */
#endif
#ifdef FT_MAKE_OPTION_SINGLE_OBJECT #ifdef FT_MAKE_OPTION_SINGLE_OBJECT
#define FT_LOCAL( x ) static x #define FT_LOCAL( x ) static x

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Build macros of the FreeType 2 library. */ /* Build macros of the FreeType 2 library. */
/* */ /* */
/* Copyright 1996-2008, 2010, 2012, 2013 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -107,7 +107,7 @@
* *
*/ */
#ifndef FT_CONFIG_CONFIG_H #ifndef FT_CONFIG_CONFIG_H
#define FT_CONFIG_CONFIG_H <config/ftconfig.h> #define FT_CONFIG_CONFIG_H <freetype/config/ftconfig.h>
#endif #endif
@ -122,7 +122,7 @@
* *
*/ */
#ifndef FT_CONFIG_STANDARD_LIBRARY_H #ifndef FT_CONFIG_STANDARD_LIBRARY_H
#define FT_CONFIG_STANDARD_LIBRARY_H <config/ftstdlib.h> #define FT_CONFIG_STANDARD_LIBRARY_H <freetype/config/ftstdlib.h>
#endif #endif
@ -137,7 +137,7 @@
* *
*/ */
#ifndef FT_CONFIG_OPTIONS_H #ifndef FT_CONFIG_OPTIONS_H
#define FT_CONFIG_OPTIONS_H <config/ftoption.h> #define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h>
#endif #endif
@ -153,7 +153,7 @@
* *
*/ */
#ifndef FT_CONFIG_MODULES_H #ifndef FT_CONFIG_MODULES_H
#define FT_CONFIG_MODULES_H <config/ftmodule.h> #define FT_CONFIG_MODULES_H <freetype/config/ftmodule.h>
#endif #endif
/* */ /* */
@ -170,7 +170,7 @@
* base FreeType~2 API. * base FreeType~2 API.
* *
*/ */
#define FT_FREETYPE_H <freetype.h> #define FT_FREETYPE_H <freetype/freetype.h>
/************************************************************************* /*************************************************************************
@ -185,7 +185,7 @@
* It is included by @FT_FREETYPE_H. * It is included by @FT_FREETYPE_H.
* *
*/ */
#define FT_ERRORS_H <fterrors.h> #define FT_ERRORS_H <freetype/fterrors.h>
/************************************************************************* /*************************************************************************
@ -198,7 +198,7 @@
* list of FreeType~2 module error offsets (and messages). * list of FreeType~2 module error offsets (and messages).
* *
*/ */
#define FT_MODULE_ERRORS_H <ftmoderr.h> #define FT_MODULE_ERRORS_H <freetype/ftmoderr.h>
/************************************************************************* /*************************************************************************
@ -214,7 +214,7 @@
* It is included by @FT_FREETYPE_H. * It is included by @FT_FREETYPE_H.
* *
*/ */
#define FT_SYSTEM_H <ftsystem.h> #define FT_SYSTEM_H <freetype/ftsystem.h>
/************************************************************************* /*************************************************************************
@ -230,7 +230,7 @@
* It is included by @FT_FREETYPE_H. * It is included by @FT_FREETYPE_H.
* *
*/ */
#define FT_IMAGE_H <ftimage.h> #define FT_IMAGE_H <freetype/ftimage.h>
/************************************************************************* /*************************************************************************
@ -245,7 +245,7 @@
* It is included by @FT_FREETYPE_H. * It is included by @FT_FREETYPE_H.
* *
*/ */
#define FT_TYPES_H <fttypes.h> #define FT_TYPES_H <freetype/fttypes.h>
/************************************************************************* /*************************************************************************
@ -260,7 +260,7 @@
* (Most applications will never need to include this file.) * (Most applications will never need to include this file.)
* *
*/ */
#define FT_LIST_H <ftlist.h> #define FT_LIST_H <freetype/ftlist.h>
/************************************************************************* /*************************************************************************
@ -273,7 +273,7 @@
* scalable outline management API of FreeType~2. * scalable outline management API of FreeType~2.
* *
*/ */
#define FT_OUTLINE_H <ftoutln.h> #define FT_OUTLINE_H <freetype/ftoutln.h>
/************************************************************************* /*************************************************************************
@ -286,7 +286,7 @@
* API which manages multiple @FT_Size objects per face. * API which manages multiple @FT_Size objects per face.
* *
*/ */
#define FT_SIZES_H <ftsizes.h> #define FT_SIZES_H <freetype/ftsizes.h>
/************************************************************************* /*************************************************************************
@ -299,7 +299,7 @@
* module management API of FreeType~2. * module management API of FreeType~2.
* *
*/ */
#define FT_MODULE_H <ftmodapi.h> #define FT_MODULE_H <freetype/ftmodapi.h>
/************************************************************************* /*************************************************************************
@ -312,7 +312,7 @@
* renderer module management API of FreeType~2. * renderer module management API of FreeType~2.
* *
*/ */
#define FT_RENDER_H <ftrender.h> #define FT_RENDER_H <freetype/ftrender.h>
/************************************************************************* /*************************************************************************
@ -325,7 +325,7 @@
* structures and macros related to the auto-hinting module. * structures and macros related to the auto-hinting module.
* *
*/ */
#define FT_AUTOHINTER_H <ftautoh.h> #define FT_AUTOHINTER_H <freetype/ftautoh.h>
/************************************************************************* /*************************************************************************
@ -338,7 +338,7 @@
* structures and macros related to the CFF driver module. * structures and macros related to the CFF driver module.
* *
*/ */
#define FT_CFF_DRIVER_H <ftcffdrv.h> #define FT_CFF_DRIVER_H <freetype/ftcffdrv.h>
/************************************************************************* /*************************************************************************
@ -351,7 +351,7 @@
* structures and macros related to the TrueType driver module. * structures and macros related to the TrueType driver module.
* *
*/ */
#define FT_TRUETYPE_DRIVER_H <ftttdrv.h> #define FT_TRUETYPE_DRIVER_H <freetype/ftttdrv.h>
/************************************************************************* /*************************************************************************
@ -364,7 +364,7 @@
* types and API specific to the Type~1 format. * types and API specific to the Type~1 format.
* *
*/ */
#define FT_TYPE1_TABLES_H <t1tables.h> #define FT_TYPE1_TABLES_H <freetype/t1tables.h>
/************************************************************************* /*************************************************************************
@ -379,7 +379,7 @@
* definitions, taken from the TrueType and OpenType specifications. * definitions, taken from the TrueType and OpenType specifications.
* *
*/ */
#define FT_TRUETYPE_IDS_H <ttnameid.h> #define FT_TRUETYPE_IDS_H <freetype/ttnameid.h>
/************************************************************************* /*************************************************************************
@ -392,7 +392,7 @@
* types and API specific to the TrueType (as well as OpenType) format. * types and API specific to the TrueType (as well as OpenType) format.
* *
*/ */
#define FT_TRUETYPE_TABLES_H <tttables.h> #define FT_TRUETYPE_TABLES_H <freetype/tttables.h>
/************************************************************************* /*************************************************************************
@ -406,7 +406,7 @@
* SFNT-based font formats (i.e., TrueType and OpenType). * SFNT-based font formats (i.e., TrueType and OpenType).
* *
*/ */
#define FT_TRUETYPE_TAGS_H <tttags.h> #define FT_TRUETYPE_TAGS_H <freetype/tttags.h>
/************************************************************************* /*************************************************************************
@ -420,7 +420,7 @@
* face. * face.
* *
*/ */
#define FT_BDF_H <ftbdf.h> #define FT_BDF_H <freetype/ftbdf.h>
/************************************************************************* /*************************************************************************
@ -434,7 +434,7 @@
* face. * face.
* *
*/ */
#define FT_CID_H <ftcid.h> #define FT_CID_H <freetype/ftcid.h>
/************************************************************************* /*************************************************************************
@ -447,7 +447,7 @@
* definitions of an API which supports gzip-compressed files. * definitions of an API which supports gzip-compressed files.
* *
*/ */
#define FT_GZIP_H <ftgzip.h> #define FT_GZIP_H <freetype/ftgzip.h>
/************************************************************************* /*************************************************************************
@ -460,7 +460,7 @@
* definitions of an API which supports LZW-compressed files. * definitions of an API which supports LZW-compressed files.
* *
*/ */
#define FT_LZW_H <ftlzw.h> #define FT_LZW_H <freetype/ftlzw.h>
/************************************************************************* /*************************************************************************
@ -473,7 +473,7 @@
* definitions of an API which supports bzip2-compressed files. * definitions of an API which supports bzip2-compressed files.
* *
*/ */
#define FT_BZIP2_H <ftbzip2.h> #define FT_BZIP2_H <freetype/ftbzip2.h>
/************************************************************************* /*************************************************************************
@ -486,7 +486,7 @@
* definitions of an API which supports Windows FNT files. * definitions of an API which supports Windows FNT files.
* *
*/ */
#define FT_WINFONTS_H <ftwinfnt.h> #define FT_WINFONTS_H <freetype/ftwinfnt.h>
/************************************************************************* /*************************************************************************
@ -499,7 +499,7 @@
* API of the optional glyph management component. * API of the optional glyph management component.
* *
*/ */
#define FT_GLYPH_H <ftglyph.h> #define FT_GLYPH_H <freetype/ftglyph.h>
/************************************************************************* /*************************************************************************
@ -512,7 +512,7 @@
* API of the optional bitmap conversion component. * API of the optional bitmap conversion component.
* *
*/ */
#define FT_BITMAP_H <ftbitmap.h> #define FT_BITMAP_H <freetype/ftbitmap.h>
/************************************************************************* /*************************************************************************
@ -525,7 +525,7 @@
* API of the optional exact bounding box computation routines. * API of the optional exact bounding box computation routines.
* *
*/ */
#define FT_BBOX_H <ftbbox.h> #define FT_BBOX_H <freetype/ftbbox.h>
/************************************************************************* /*************************************************************************
@ -538,7 +538,7 @@
* API of the optional FreeType~2 cache sub-system. * API of the optional FreeType~2 cache sub-system.
* *
*/ */
#define FT_CACHE_H <ftcache.h> #define FT_CACHE_H <freetype/ftcache.h>
/************************************************************************* /*************************************************************************
@ -612,7 +612,7 @@
* compiled on the Mac (note that the base API still works though). * compiled on the Mac (note that the base API still works though).
* *
*/ */
#define FT_MAC_H <ftmac.h> #define FT_MAC_H <freetype/ftmac.h>
/************************************************************************* /*************************************************************************
@ -625,7 +625,7 @@
* optional multiple-masters management API of FreeType~2. * optional multiple-masters management API of FreeType~2.
* *
*/ */
#define FT_MULTIPLE_MASTERS_H <ftmm.h> #define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h>
/************************************************************************* /*************************************************************************
@ -639,7 +639,7 @@
* SFNT-based font formats (i.e., TrueType and OpenType). * SFNT-based font formats (i.e., TrueType and OpenType).
* *
*/ */
#define FT_SFNT_NAMES_H <ftsnames.h> #define FT_SFNT_NAMES_H <freetype/ftsnames.h>
/************************************************************************* /*************************************************************************
@ -653,7 +653,7 @@
* GPOS, GSUB, JSTF). * GPOS, GSUB, JSTF).
* *
*/ */
#define FT_OPENTYPE_VALIDATE_H <ftotval.h> #define FT_OPENTYPE_VALIDATE_H <freetype/ftotval.h>
/************************************************************************* /*************************************************************************
@ -667,7 +667,7 @@
* mort, morx, bsln, just, kern, opbd, trak, prop). * mort, morx, bsln, just, kern, opbd, trak, prop).
* *
*/ */
#define FT_GX_VALIDATE_H <ftgxval.h> #define FT_GX_VALIDATE_H <freetype/ftgxval.h>
/************************************************************************* /*************************************************************************
@ -680,7 +680,7 @@
* FreeType~2 API which accesses PFR-specific data. * FreeType~2 API which accesses PFR-specific data.
* *
*/ */
#define FT_PFR_H <ftpfr.h> #define FT_PFR_H <freetype/ftpfr.h>
/************************************************************************* /*************************************************************************
@ -692,7 +692,7 @@
* A macro used in #include statements to name the file containing the * 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 <ftstroke.h> #define FT_STROKER_H <freetype/ftstroke.h>
/************************************************************************* /*************************************************************************
@ -704,20 +704,22 @@
* A macro used in #include statements to name the file containing the * 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 <ftsynth.h> #define FT_SYNTHESIS_H <freetype/ftsynth.h>
/************************************************************************* /*************************************************************************
* *
* @macro: * @macro:
* FT_XFREE86_H * FT_FONT_FORMATS_H
* *
* @description: * @description:
* A macro used in #include statements to name the file containing the * 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 font formats.
* X.Org X11 servers.
*/ */
#define FT_XFREE86_H <ftxf86.h> #define FT_FONT_FORMATS_H <freetype/ftfntfmt.h>
/* deprecated */
#define FT_XFREE86_H FT_FONT_FORMATS_H
/************************************************************************* /*************************************************************************
@ -730,7 +732,7 @@
* FreeType~2 API which performs trigonometric computations (e.g., * FreeType~2 API which performs trigonometric computations (e.g.,
* cosines and arc tangents). * cosines and arc tangents).
*/ */
#define FT_TRIGONOMETRY_H <fttrigon.h> #define FT_TRIGONOMETRY_H <freetype/fttrigon.h>
/************************************************************************* /*************************************************************************
@ -742,7 +744,7 @@
* A macro used in #include statements to name the file containing the * 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 <ftlcdfil.h> #define FT_LCD_FILTER_H <freetype/ftlcdfil.h>
/************************************************************************* /*************************************************************************
@ -754,7 +756,7 @@
* A macro used in #include statements to name the file containing the * 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 <ttunpat.h> #define FT_UNPATENTED_HINTING_H <freetype/ttunpat.h>
/************************************************************************* /*************************************************************************
@ -766,7 +768,7 @@
* A macro used in #include statements to name the file containing the * 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 <ftincrem.h> #define FT_INCREMENTAL_H <freetype/ftincrem.h>
/************************************************************************* /*************************************************************************
@ -778,7 +780,7 @@
* A macro used in #include statements to name the file containing the * 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 <ftgasp.h> #define FT_GASP_H <freetype/ftgasp.h>
/************************************************************************* /*************************************************************************
@ -790,30 +792,30 @@
* A macro used in #include statements to name the file containing the * A macro used in #include statements to name the file containing the
* FreeType~2 API which returns individual and ranged glyph advances. * FreeType~2 API which returns individual and ranged glyph advances.
*/ */
#define FT_ADVANCES_H <ftadvanc.h> #define FT_ADVANCES_H <freetype/ftadvanc.h>
/* */ /* */
#define FT_ERROR_DEFINITIONS_H <fterrdef.h> #define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h>
/* The internals of the cache sub-system are no longer exposed. We */ /* The internals of the cache sub-system are no longer exposed. We */
/* default to FT_CACHE_H at the moment just in case, but we know of */ /* default to FT_CACHE_H at the moment just in case, but we know of */
/* no rogue client that uses them. */ /* no rogue client that uses them. */
/* */ /* */
#define FT_CACHE_MANAGER_H <ftcache.h> #define FT_CACHE_MANAGER_H <freetype/ftcache.h>
#define FT_CACHE_INTERNAL_MRU_H <ftcache.h> #define FT_CACHE_INTERNAL_MRU_H <freetype/ftcache.h>
#define FT_CACHE_INTERNAL_MANAGER_H <ftcache.h> #define FT_CACHE_INTERNAL_MANAGER_H <freetype/ftcache.h>
#define FT_CACHE_INTERNAL_CACHE_H <ftcache.h> #define FT_CACHE_INTERNAL_CACHE_H <freetype/ftcache.h>
#define FT_CACHE_INTERNAL_GLYPH_H <ftcache.h> #define FT_CACHE_INTERNAL_GLYPH_H <freetype/ftcache.h>
#define FT_CACHE_INTERNAL_IMAGE_H <ftcache.h> #define FT_CACHE_INTERNAL_IMAGE_H <freetype/ftcache.h>
#define FT_CACHE_INTERNAL_SBITS_H <ftcache.h> #define FT_CACHE_INTERNAL_SBITS_H <freetype/ftcache.h>
#define FT_INCREMENTAL_H <ftincrem.h> #define FT_INCREMENTAL_H <freetype/ftincrem.h>
#define FT_TRUETYPE_UNPATENTED_H <ttunpat.h> #define FT_TRUETYPE_UNPATENTED_H <freetype/ttunpat.h>
/* /*
@ -821,7 +823,7 @@
* only when building the library. * only when building the library.
*/ */
#ifdef FT2_BUILD_LIBRARY #ifdef FT2_BUILD_LIBRARY
#define FT_INTERNAL_INTERNAL_H <internal/internal.h> #define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h>
#include FT_INTERNAL_INTERNAL_H #include FT_INTERNAL_INTERNAL_H
#endif /* FT2_BUILD_LIBRARY */ #endif /* FT2_BUILD_LIBRARY */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* User-selectable configuration macros (specification only). */ /* User-selectable configuration macros (specification only). */
/* */ /* */
/* Copyright 1996-2014 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -38,9 +38,9 @@ FT_BEGIN_HEADER
/* library from a single source directory. */ /* library from a single source directory. */
/* */ /* */
/* - You can put a copy of this file in your build directory, more */ /* - You can put a copy of this file in your build directory, more */
/* precisely in `$BUILD/config/ftoption.h', where `$BUILD' is the */ /* precisely in `$BUILD/freetype/config/ftoption.h', where `$BUILD' */
/* name of a directory that is included _before_ the FreeType include */ /* is the name of a directory that is included _before_ the FreeType */
/* path during compilation. */ /* include path during compilation. */
/* */ /* */
/* The default FreeType Makefiles and Jamfiles use the build */ /* The default FreeType Makefiles and Jamfiles use the build */
/* directory `builds/<system>' by default, but you can easily change */ /* directory `builds/<system>' by default, but you can easily change */
@ -51,7 +51,7 @@ FT_BEGIN_HEADER
/* locate this file during the build. For example, */ /* locate this file during the build. For example, */
/* */ /* */
/* #define FT_CONFIG_OPTIONS_H <myftoptions.h> */ /* #define FT_CONFIG_OPTIONS_H <myftoptions.h> */
/* #include <config/ftheader.h> */ /* #include <freetype/config/ftheader.h> */
/* */ /* */
/* will use `$BUILD/myftoptions.h' instead of this file for macro */ /* will use `$BUILD/myftoptions.h' instead of this file for macro */
/* definitions. */ /* definitions. */
@ -59,7 +59,7 @@ FT_BEGIN_HEADER
/* Note also that you can similarly pre-define the macro */ /* Note also that you can similarly pre-define the macro */
/* FT_CONFIG_MODULES_H used to locate the file listing of the modules */ /* FT_CONFIG_MODULES_H used to locate the file listing of the modules */
/* that are statically linked to the library at compile time. By */ /* that are statically linked to the library at compile time. By */
/* default, this file is <config/ftmodule.h>. */ /* default, this file is <freetype/config/ftmodule.h>. */
/* */ /* */
/* We highly recommend using the third method whenever possible. */ /* We highly recommend using the third method whenever possible. */
/* */ /* */
@ -378,10 +378,6 @@ FT_BEGIN_HEADER
/* The size in bytes of the render pool used by the scan-line converter */ /* The size in bytes of the render pool used by the scan-line converter */
/* to do all of its work. */ /* to do all of its work. */
/* */ /* */
/* This must be greater than 4KByte if you use FreeType to rasterize */
/* glyphs; otherwise, you may set it to zero to avoid unnecessary */
/* allocation of the render pool. */
/* */
#define FT_RENDER_POOL_SIZE 16384L #define FT_RENDER_POOL_SIZE 16384L
@ -435,6 +431,8 @@ FT_BEGIN_HEADER
/* af_glyph_hints_dump_points */ /* af_glyph_hints_dump_points */
/* af_glyph_hints_dump_segments */ /* af_glyph_hints_dump_segments */
/* af_glyph_hints_dump_edges */ /* af_glyph_hints_dump_edges */
/* af_glyph_hints_get_num_segments */
/* af_glyph_hints_get_segment_offset */
/* */ /* */
/* As an argument, they use another global variable: */ /* As an argument, they use another global variable: */
/* */ /* */
@ -657,19 +655,6 @@ FT_BEGIN_HEADER
/* #define TT_CONFIG_OPTION_UNPATENTED_HINTING */ /* #define TT_CONFIG_OPTION_UNPATENTED_HINTING */
/*************************************************************************/
/* */
/* Define TT_CONFIG_OPTION_INTERPRETER_SWITCH to compile the TrueType */
/* bytecode interpreter with a huge switch statement, rather than a call */
/* table. This results in smaller and faster code for a number of */
/* architectures. */
/* */
/* Note however that on some compiler/processor combinations, undefining */
/* this macro will generate faster, though larger, code. */
/* */
#define TT_CONFIG_OPTION_INTERPRETER_SWITCH
/*************************************************************************/ /*************************************************************************/
/* */ /* */
/* Define TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED to compile the */ /* Define TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED to compile the */
@ -684,7 +669,7 @@ FT_BEGIN_HEADER
/* fonts will not have them. */ /* fonts will not have them. */
/* */ /* */
/* http://www.microsoft.com/typography/otspec/glyf.htm */ /* http://www.microsoft.com/typography/otspec/glyf.htm */
/* http://fonts.apple.com/TTRefMan/RM06/Chap6glyf.html */ /* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html */
/* */ /* */
#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED #undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED
@ -835,10 +820,12 @@ FT_BEGIN_HEADER
/* grid. To find out the optimal scaling and shifting value, various */ /* grid. To find out the optimal scaling and shifting value, various */
/* parameter combinations are tried and scored. */ /* parameter combinations are tried and scored. */
/* */ /* */
/* This experimental option is only active if the render mode is */ /* This experimental option is active only if the rendering mode is */
/* FT_RENDER_MODE_LIGHT. */ /* FT_RENDER_MODE_LIGHT; you can switch warping on and off with the */
/* `warping' property of the auto-hinter (see file `ftautoh.h' for more */
/* information; by default it is switched off). */
/* */ /* */
/* #define AF_CONFIG_OPTION_USE_WARPER */ #define AF_CONFIG_OPTION_USE_WARPER
/* */ /* */

View File

@ -5,7 +5,7 @@
/* ANSI-specific library and header configuration file (specification */ /* ANSI-specific library and header configuration file (specification */
/* only). */ /* only). */
/* */ /* */
/* Copyright 2002-2007, 2009, 2011-2012 by */ /* Copyright 2002-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -64,6 +64,7 @@
#define FT_INT_MAX INT_MAX #define FT_INT_MAX INT_MAX
#define FT_INT_MIN INT_MIN #define FT_INT_MIN INT_MIN
#define FT_UINT_MAX UINT_MAX #define FT_UINT_MAX UINT_MAX
#define FT_LONG_MAX LONG_MAX
#define FT_ULONG_MAX ULONG_MAX #define FT_ULONG_MAX ULONG_MAX
@ -141,8 +142,7 @@
/**********************************************************************/ /**********************************************************************/
#define ft_atol atol #define ft_atol atol
#define ft_labs labs
/**********************************************************************/ /**********************************************************************/

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType high-level API and common types (specification only). */ /* FreeType high-level API and common types (specification only). */
/* */ /* */
/* Copyright 1996-2014 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -394,8 +394,11 @@ FT_BEGIN_HEADER
/* It also embeds a memory manager (see @FT_Memory), as well as a */ /* It also embeds a memory manager (see @FT_Memory), as well as a */
/* scan-line converter object (see @FT_Raster). */ /* scan-line converter object (see @FT_Raster). */
/* */ /* */
/* In multi-threaded applications, make sure that the same FT_Library */ /* In multi-threaded applications it is easiest to use one */
/* object or any of its children doesn't get accessed in parallel. */ /* `FT_Library' object per thread. In case this is too cumbersome, */
/* a single `FT_Library' object across threads is possible also */
/* (since FreeType version 2.5.6), as long as a mutex lock is used */
/* around @FT_New_Face and @FT_Done_Face. */
/* */ /* */
/* <Note> */ /* <Note> */
/* Library objects are normally created by @FT_Init_FreeType, and */ /* Library objects are normally created by @FT_Init_FreeType, and */
@ -477,6 +480,14 @@ FT_BEGIN_HEADER
/* */ /* */
/* Use @FT_Done_Face to destroy it (along with its slot and sizes). */ /* Use @FT_Done_Face to destroy it (along with its slot and sizes). */
/* */ /* */
/* An `FT_Face' object can only be safely used from one thread at a */
/* time. Similarly, creation and destruction of `FT_Face' with the */
/* same @FT_Library object can only be done from one thread at a */
/* time. On the other hand, functions like @FT_Load_Glyph and its */
/* siblings are thread-safe and do not need the lock to be held as */
/* long as the same `FT_Face' object is not used from multiple */
/* threads at the same time. */
/* */
/* <Also> */ /* <Also> */
/* See @FT_FaceRec for the publicly accessible fields of a given face */ /* See @FT_FaceRec for the publicly accessible fields of a given face */
/* object. */ /* object. */
@ -631,9 +642,13 @@ FT_BEGIN_HEADER
/* */ /* */
/* FT_ENCODING_MS_SYMBOL :: */ /* FT_ENCODING_MS_SYMBOL :: */
/* Corresponds to the Microsoft Symbol encoding, used to encode */ /* Corresponds to the Microsoft Symbol encoding, used to encode */
/* mathematical symbols in the 32..255 character code range. For */ /* mathematical symbols and wingdings. For more information, see */
/* more information, see */ /* `http://www.microsoft.com/typography/otspec/recom.htm', */
/* `http://www.kostis.net/charsets/symbol.htm'. */ /* `http://www.kostis.net/charsets/symbol.htm', and */
/* `http://www.kostis.net/charsets/wingding.htm'. */
/* */
/* This encoding uses character codes from the PUA (Private Unicode */
/* Area) in the range U+F020-U+F0FF. */
/* */ /* */
/* FT_ENCODING_SJIS :: */ /* FT_ENCODING_SJIS :: */
/* Corresponds to Japanese SJIS encoding. More info at */ /* Corresponds to Japanese SJIS encoding. More info at */
@ -651,7 +666,7 @@ FT_BEGIN_HEADER
/* FT_ENCODING_WANSUNG :: */ /* FT_ENCODING_WANSUNG :: */
/* Corresponds to the Korean encoding system known as Wansung. */ /* Corresponds to the Korean encoding system known as Wansung. */
/* For more information see */ /* For more information see */
/* `http://msdn.microsoft.com/en-US/goglobal/cc305154'. */ /* `https://msdn.microsoft.com/en-US/goglobal/cc305154'. */
/* */ /* */
/* FT_ENCODING_JOHAB :: */ /* FT_ENCODING_JOHAB :: */
/* The Korean standard character set (KS~C 5601-1992), which */ /* The Korean standard character set (KS~C 5601-1992), which */
@ -861,17 +876,36 @@ FT_BEGIN_HEADER
/* font formats can have multiple faces in */ /* font formats can have multiple faces in */
/* a font file. */ /* a font file. */
/* */ /* */
/* face_index :: The index of the face in the font file. It */ /* face_index :: This field holds two different values. */
/* is set to~0 if there is only one face in */ /* Bits 0-15 are the index of the face in the */
/* font file (starting with value~0). They */
/* are set to~0 if there is only one face in */
/* the font file. */ /* the font file. */
/* */ /* */
/* Bits 16-30 are relevant to GX variation */
/* fonts only, holding the named instance */
/* index for the current face index (starting */
/* with value~1; value~0 indicates font access */
/* without GX variation data). For non-GX */
/* fonts, bits 16-30 are ignored. If we have */
/* the third named instance of face~4, say, */
/* `face_index' is set to 0x00030004. */
/* */
/* Bit 31 is always zero (this is, */
/* `face_index' is always a positive value). */
/* */
/* face_flags :: A set of bit flags that give important */ /* face_flags :: A set of bit flags that give important */
/* information about the face; see */ /* information about the face; see */
/* @FT_FACE_FLAG_XXX for the details. */ /* @FT_FACE_FLAG_XXX for the details. */
/* */ /* */
/* style_flags :: A set of bit flags indicating the style of */ /* style_flags :: The lower 16~bits contain a set of bit */
/* the face; see @FT_STYLE_FLAG_XXX for the */ /* flags indicating the style of the face; see */
/* details. */ /* @FT_STYLE_FLAG_XXX for the details. Bits */
/* 16-30 hold the number of named instances */
/* available for the current face if we have a */
/* GX variation (sub)font. Bit 31 is always */
/* zero (this is, `style_flags' is always a */
/* positive value). */
/* */ /* */
/* num_glyphs :: The number of glyphs in the face. If the */ /* num_glyphs :: The number of glyphs in the face. If the */
/* face is scalable and has sbits (see */ /* face is scalable and has sbits (see */
@ -893,6 +927,11 @@ FT_BEGIN_HEADER
/* Can be NULL (e.g., in fonts embedded in a */ /* Can be NULL (e.g., in fonts embedded in a */
/* PDF file). */ /* PDF file). */
/* */ /* */
/* In case the font doesn't provide a specific */
/* family name entry, FreeType tries to */
/* synthesize one, deriving it from other name */
/* entries. */
/* */
/* style_name :: The face's style name. This is an ASCII */ /* style_name :: The face's style name. This is an ASCII */
/* string, usually in English, that describes */ /* string, usually in English, that describes */
/* the typeface's style (like `Italic', */ /* the typeface's style (like `Italic', */
@ -1140,7 +1179,7 @@ FT_BEGIN_HEADER
/* TrueType bytecode instructions to move and scale all of its */ /* TrueType bytecode instructions to move and scale all of its */
/* subglyphs. */ /* subglyphs. */
/* */ /* */
/* It is not possible to autohint such fonts using */ /* It is not possible to auto-hint such fonts using */
/* @FT_LOAD_FORCE_AUTOHINT; it will also ignore */ /* @FT_LOAD_FORCE_AUTOHINT; it will also ignore */
/* @FT_LOAD_NO_HINTING. You have to set both @FT_LOAD_NO_HINTING */ /* @FT_LOAD_NO_HINTING. You have to set both @FT_LOAD_NO_HINTING */
/* and @FT_LOAD_NO_AUTOHINT to really disable hinting; however, you */ /* and @FT_LOAD_NO_AUTOHINT to really disable hinting; however, you */
@ -1372,7 +1411,7 @@ FT_BEGIN_HEADER
/* FT_STYLE_FLAG_XXX */ /* FT_STYLE_FLAG_XXX */
/* */ /* */
/* <Description> */ /* <Description> */
/* A list of bit-flags used to indicate the style of a given face. */ /* A list of bit flags used to indicate the style of a given face. */
/* These are used in the `style_flags' field of @FT_FaceRec. */ /* These are used in the `style_flags' field of @FT_FaceRec. */
/* */ /* */
/* <Values> */ /* <Values> */
@ -1649,11 +1688,11 @@ FT_BEGIN_HEADER
/* needs to know about the image format. */ /* needs to know about the image format. */
/* */ /* */
/* lsb_delta :: The difference between hinted and unhinted */ /* lsb_delta :: The difference between hinted and unhinted */
/* left side bearing while autohinting is */ /* left side bearing while auto-hinting is */
/* active. Zero otherwise. */ /* active. Zero otherwise. */
/* */ /* */
/* rsb_delta :: The difference between hinted and unhinted */ /* rsb_delta :: The difference between hinted and unhinted */
/* right side bearing while autohinting is */ /* right side bearing while auto-hinting is */
/* active. Zero otherwise. */ /* active. Zero otherwise. */
/* */ /* */
/* <Note> */ /* <Note> */
@ -1676,7 +1715,7 @@ FT_BEGIN_HEADER
/* `slot->format' is also changed to @FT_GLYPH_FORMAT_BITMAP. */ /* `slot->format' is also changed to @FT_GLYPH_FORMAT_BITMAP. */
/* */ /* */
/* <Note> */ /* <Note> */
/* Here a small pseudo code fragment that shows how to use */ /* Here is a small pseudo code fragment that shows how to use */
/* `lsb_delta' and `rsb_delta': */ /* `lsb_delta' and `rsb_delta': */
/* */ /* */
/* { */ /* { */
@ -1769,8 +1808,8 @@ FT_BEGIN_HEADER
/* use @FT_New_Library instead, followed by a call to */ /* use @FT_New_Library instead, followed by a call to */
/* @FT_Add_Default_Modules (or a series of calls to @FT_Add_Module). */ /* @FT_Add_Default_Modules (or a series of calls to @FT_Add_Module). */
/* */ /* */
/* For multi-threading applications each thread should have its own */ /* See the documentation of @FT_Library and @FT_Face for */
/* FT_Library object. */ /* multi-threading issues. */
/* */ /* */
/* If you need reference-counting (cf. @FT_Reference_Library), use */ /* If you need reference-counting (cf. @FT_Reference_Library), use */
/* @FT_New_Library and @FT_Done_Library. */ /* @FT_New_Library and @FT_Done_Library. */
@ -1804,7 +1843,7 @@ FT_BEGIN_HEADER
/* FT_OPEN_XXX */ /* FT_OPEN_XXX */
/* */ /* */
/* <Description> */ /* <Description> */
/* A list of bit-field constants used within the `flags' field of the */ /* A list of bit field constants used within the `flags' field of the */
/* @FT_Open_Args structure. */ /* @FT_Open_Args structure. */
/* */ /* */
/* <Values> */ /* <Values> */
@ -1951,13 +1990,12 @@ FT_BEGIN_HEADER
/* <Input> */ /* <Input> */
/* pathname :: A path to the font file. */ /* pathname :: A path to the font file. */
/* */ /* */
/* face_index :: The index of the face within the font. The first */ /* face_index :: See @FT_Open_Face for a detailed description of this */
/* face has index~0. */ /* parameter. */
/* */ /* */
/* <Output> */ /* <Output> */
/* aface :: A handle to a new face object. If `face_index' is */ /* aface :: A handle to a new face object. If `face_index' is */
/* greater than or equal to zero, it must be non-NULL. */ /* greater than or equal to zero, it must be non-NULL. */
/* See @FT_Open_Face for more details. */
/* */ /* */
/* <Return> */ /* <Return> */
/* FreeType error code. 0~means success. */ /* FreeType error code. 0~means success. */
@ -1990,13 +2028,12 @@ FT_BEGIN_HEADER
/* */ /* */
/* file_size :: The size of the memory chunk used by the font data. */ /* 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_index :: See @FT_Open_Face for a detailed description of this */
/* face has index~0. */ /* parameter. */
/* */ /* */
/* <Output> */ /* <Output> */
/* aface :: A handle to a new face object. If `face_index' is */ /* aface :: A handle to a new face object. If `face_index' is */
/* greater than or equal to zero, it must be non-NULL. */ /* greater than or equal to zero, it must be non-NULL. */
/* See @FT_Open_Face for more details. */
/* */ /* */
/* <Return> */ /* <Return> */
/* FreeType error code. 0~means success. */ /* FreeType error code. 0~means success. */
@ -2028,13 +2065,43 @@ FT_BEGIN_HEADER
/* args :: A pointer to an `FT_Open_Args' structure that must */ /* args :: A pointer to an `FT_Open_Args' structure that must */
/* be filled by the caller. */ /* be filled by the caller. */
/* */ /* */
/* face_index :: The index of the face within the font. The first */ /* face_index :: This field holds two different values. Bits 0-15 */
/* face has index~0. */ /* are the index of the face in the font file (starting */
/* with value~0). Set it to~0 if there is only one */
/* face in the font file. */
/* */
/* Bits 16-30 are relevant to GX variation fonts only, */
/* specifying the named instance index for the current */
/* face index (starting with value~1; value~0 makes */
/* FreeType ignore named instances). For non-GX fonts, */
/* bits 16-30 are ignored. Assuming that you want to */
/* access the third named instance in face~4, */
/* `face_index' should be set to 0x00030004. If you */
/* want to access face~4 without GX variation handling, */
/* simply set `face_index' to value~4. */
/* */
/* FT_Open_Face and its siblings can be used to quickly */
/* check whether the font format of a given font */
/* resource is supported by FreeType. In general, if */
/* the `face_index' argument is negative, the */
/* function's return value is~0 if the font format is */
/* recognized, or non-zero otherwise. The function */
/* allocates a more or less empty face handle in */
/* `*aface' (if `aface' isn't NULL); the only two */
/* useful fields in this special case are */
/* `face->num_faces' and `face->style_flags'. For any */
/* negative value of `face_index', `face->num_faces' */
/* gives the number of faces within the font file. For */
/* the negative value `-(N+1)' (with `N' a 16-bit */
/* value), bits 16-30 in `face->style_flags' give the */
/* number of named instances in face `N' if we have a */
/* GX variation font (or zero otherwise). After */
/* examination, the returned @FT_Face structure should */
/* be deallocated with a call to @FT_Done_Face. */
/* */ /* */
/* <Output> */ /* <Output> */
/* aface :: A handle to a new face object. If `face_index' is */ /* aface :: A handle to a new face object. If `face_index' is */
/* greater than or equal to zero, it must be non-NULL. */ /* greater than or equal to zero, it must be non-NULL. */
/* See note below. */
/* */ /* */
/* <Return> */ /* <Return> */
/* FreeType error code. 0~means success. */ /* FreeType error code. 0~means success. */
@ -2044,16 +2111,6 @@ FT_BEGIN_HEADER
/* slot for the face object that can be accessed directly through */ /* slot for the face object that can be accessed directly through */
/* `face->glyph'. */ /* `face->glyph'. */
/* */ /* */
/* 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 */
/* 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 */
/* case is `face->num_faces' that gives the number of faces within */
/* the font file. After examination, the returned @FT_Face structure */
/* should be deallocated with a call to @FT_Done_Face. */
/* */
/* Each new face object created with this function also owns a */ /* Each new face object created with this function also owns a */
/* default @FT_Size object, accessible as `face->size'. */ /* default @FT_Size object, accessible as `face->size'. */
/* */ /* */
@ -2064,6 +2121,74 @@ FT_BEGIN_HEADER
/* See the discussion of reference counters in the description of */ /* See the discussion of reference counters in the description of */
/* @FT_Reference_Face. */ /* @FT_Reference_Face. */
/* */ /* */
/* To loop over all faces, use code similar to the following snippet */
/* (omitting the error handling). */
/* */
/* { */
/* ... */
/* FT_Face face; */
/* FT_Long i, num_faces; */
/* */
/* */
/* error = FT_Open_Face( library, args, -1, &face ); */
/* if ( error ) { ... } */
/* */
/* num_faces = face->num_faces; */
/* FT_Done_Face( face ); */
/* */
/* for ( i = 0; i < num_faces; i++ ) */
/* { */
/* ... */
/* error = FT_Open_Face( library, args, i, &face ); */
/* ... */
/* FT_Done_Face( face ); */
/* ... */
/* } */
/* } */
/* */
/* To loop over all valid values for `face_index', use something */
/* similar to the following snippet, again without error handling. */
/* The code accesses all faces immediately (thus only a single call */
/* of `FT_Open_Face' within the do-loop), with and without named */
/* instances. */
/* */
/* { */
/* ... */
/* FT_Face face; */
/* */
/* FT_Long num_faces = 0; */
/* FT_Long num_instances = 0; */
/* */
/* FT_Long face_idx = 0; */
/* FT_Long instance_idx = 0; */
/* */
/* */
/* do */
/* { */
/* FT_Long id = ( instance_idx << 16 ) + face_idx; */
/* */
/* */
/* error = FT_Open_Face( library, args, id, &face ); */
/* if ( error ) { ... } */
/* */
/* num_faces = face->num_faces; */
/* num_instances = face->style_flags >> 16; */
/* */
/* ... */
/* */
/* FT_Done_Face( face ); */
/* */
/* if ( instance_idx < num_instances ) */
/* instance_idx++; */
/* else */
/* { */
/* face_idx++; */
/* instance_idx = 0; */
/* } */
/* */
/* } while ( face_idx < num_faces ) */
/* } */
/* */
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Open_Face( FT_Library library, FT_Open_Face( FT_Library library,
const FT_Open_Args* args, const FT_Open_Args* args,
@ -2501,7 +2626,7 @@ FT_BEGIN_HEADER
* FT_LOAD_XXX * FT_LOAD_XXX
* *
* @description: * @description:
* A list of bit-field constants used with @FT_Load_Glyph to indicate * A list of bit field constants used with @FT_Load_Glyph to indicate
* what kind of operations to perform during glyph loading. * what kind of operations to perform during glyph loading.
* *
* @values: * @values:
@ -2618,6 +2743,16 @@ FT_BEGIN_HEADER
* bitmaps transparently. Those bitmaps will be in the * bitmaps transparently. Those bitmaps will be in the
* @FT_PIXEL_MODE_GRAY format. * @FT_PIXEL_MODE_GRAY format.
* *
* FT_LOAD_COMPUTE_METRICS ::
* This flag sets computing glyph metrics without the use of bundled
* metrics tables (for example, the `hdmx' table in TrueType fonts).
* Well-behaving fonts have optimized bundled metrics and these should
* be used. This flag is mainly used by font validating or font
* editing applications, which need to ignore, verify, or edit those
* tables.
*
* Currently, this flag is only implemented for TrueType fonts.
*
* FT_LOAD_CROP_BITMAP :: * FT_LOAD_CROP_BITMAP ::
* Ignored. Deprecated. * Ignored. Deprecated.
* *
@ -2663,6 +2798,7 @@ FT_BEGIN_HEADER
#define FT_LOAD_NO_AUTOHINT ( 1L << 15 ) #define FT_LOAD_NO_AUTOHINT ( 1L << 15 )
/* Bits 16..19 are used by `FT_LOAD_TARGET_' */ /* Bits 16..19 are used by `FT_LOAD_TARGET_' */
#define FT_LOAD_COLOR ( 1L << 20 ) #define FT_LOAD_COLOR ( 1L << 20 )
#define FT_LOAD_COMPUTE_METRICS ( 1L << 21 )
/* */ /* */
@ -2907,15 +3043,22 @@ FT_BEGIN_HEADER
/* @FT_Get_Kerning. */ /* @FT_Get_Kerning. */
/* */ /* */
/* <Values> */ /* <Values> */
/* FT_KERNING_DEFAULT :: Return scaled and grid-fitted kerning */ /* FT_KERNING_DEFAULT :: Return grid-fitted kerning distances in */
/* distances (value is~0). */ /* pixels (value is~0). Whether they are */
/* scaled depends on @FT_LOAD_NO_SCALE. */
/* */ /* */
/* FT_KERNING_UNFITTED :: Return scaled but un-grid-fitted kerning */ /* FT_KERNING_UNFITTED :: Return un-grid-fitted kerning distances in */
/* distances. */ /* 26.6 fractional pixels. Whether they are */
/* scaled depends on @FT_LOAD_NO_SCALE. */
/* */ /* */
/* FT_KERNING_UNSCALED :: Return the kerning vector in original font */ /* FT_KERNING_UNSCALED :: Return the kerning vector in original font */
/* units. */ /* units. */
/* */ /* */
/* <Note> */
/* FT_KERNING_DEFAULT returns full pixel values; it also makes */
/* FreeType heuristically scale down kerning distances at small ppem */
/* values so that they don't become too big. */
/* */
typedef enum FT_Kerning_Mode_ typedef enum FT_Kerning_Mode_
{ {
FT_KERNING_DEFAULT = 0, FT_KERNING_DEFAULT = 0,
@ -2952,9 +3095,10 @@ FT_BEGIN_HEADER
/* kerning vector. */ /* kerning vector. */
/* */ /* */
/* <Output> */ /* <Output> */
/* akerning :: The kerning vector. This is either in font units */ /* akerning :: The kerning vector. This is either in font units, */
/* or in pixels (26.6 format) for scalable formats, */ /* fractional pixels (26.6 format), or pixels for */
/* and in pixels for fixed-sizes formats. */ /* scalable formats, and in pixels for fixed-sizes */
/* formats. */
/* */ /* */
/* <Return> */ /* <Return> */
/* FreeType error code. 0~means success. */ /* FreeType error code. 0~means success. */
@ -3239,6 +3383,13 @@ FT_BEGIN_HEADER
/* } */ /* } */
/* } */ /* } */
/* */ /* */
/* Be aware that character codes can have values up to 0xFFFFFFFF; */
/* this might happen for non-Unicode or malformed cmaps. However, */
/* even with regular Unicode encoding, so-called `last resort fonts' */
/* (using SFNT cmap format 13, see function @FT_Get_CMap_Format) */
/* normally have entries for all Unicode characters up to 0x1FFFFF, */
/* which can cause *a lot* of iterations. */
/* */
/* Note that `*agindex' is set to~0 if the charmap is empty. The */ /* 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 */ /* result itself can be~0 in two cases: if the charmap is empty or */
/* if the value~0 is the first valid character code. */ /* if the value~0 is the first valid character code. */
@ -3398,8 +3549,9 @@ FT_BEGIN_HEADER
/* @FT_Get_FSType_Flags; they inform client applications of embedding */ /* @FT_Get_FSType_Flags; they inform client applications of embedding */
/* and subsetting restrictions associated with a font. */ /* and subsetting restrictions associated with a font. */
/* */ /* */
/* See http://www.adobe.com/devnet/acrobat/pdfs/FontPolicies.pdf for */ /* See */
/* more details. */ /* http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/FontPolicies.pdf */
/* for more details. */
/* */ /* */
/* <Values> */ /* <Values> */
/* FT_FSTYPE_INSTALLABLE_EMBEDDING :: */ /* FT_FSTYPE_INSTALLABLE_EMBEDDING :: */
@ -3433,6 +3585,9 @@ FT_BEGIN_HEADER
/* bitmaps available in the font, then the font is unembeddable. */ /* bitmaps available in the font, then the font is unembeddable. */
/* */ /* */
/* <Note> */ /* <Note> */
/* The flags are ORed together, thus more than a single value can be */
/* returned. */
/* */
/* While the fsType flags can indicate that a font may be embedded, a */ /* While the fsType flags can indicate that a font may be embedded, a */
/* license with the font vendor may be separately required to use the */ /* license with the font vendor may be separately required to use the */
/* font in this way. */ /* font in this way. */
@ -3818,7 +3973,8 @@ FT_BEGIN_HEADER
/* a :: The number to be rounded. */ /* a :: The number to be rounded. */
/* */ /* */
/* <Return> */ /* <Return> */
/* The result of `(a + 0x8000) & -0x10000'. */ /* `a' rounded to nearest 16.16 fixed integer, halfway cases away */
/* from zero. */
/* */ /* */
FT_EXPORT( FT_Fixed ) FT_EXPORT( FT_Fixed )
FT_RoundFix( FT_Fixed a ); FT_RoundFix( FT_Fixed a );
@ -3837,7 +3993,7 @@ FT_BEGIN_HEADER
/* a :: The number for which the ceiling function is to be computed. */ /* a :: The number for which the ceiling function is to be computed. */
/* */ /* */
/* <Return> */ /* <Return> */
/* The result of `(a + 0x10000 - 1) & -0x10000'. */ /* `a' rounded towards plus infinity. */
/* */ /* */
FT_EXPORT( FT_Fixed ) FT_EXPORT( FT_Fixed )
FT_CeilFix( FT_Fixed a ); FT_CeilFix( FT_Fixed a );
@ -3856,7 +4012,7 @@ FT_BEGIN_HEADER
/* a :: The number for which the floor function is to be computed. */ /* a :: The number for which the floor function is to be computed. */
/* */ /* */
/* <Return> */ /* <Return> */
/* The result of `a & -0x10000'. */ /* `a' rounded towards minus infinity. */
/* */ /* */
FT_EXPORT( FT_Fixed ) FT_EXPORT( FT_Fixed )
FT_FloorFix( FT_Fixed a ); FT_FloorFix( FT_Fixed a );
@ -3936,8 +4092,8 @@ FT_BEGIN_HEADER
* *
*/ */
#define FREETYPE_MAJOR 2 #define FREETYPE_MAJOR 2
#define FREETYPE_MINOR 5 #define FREETYPE_MINOR 6
#define FREETYPE_PATCH 5 #define FREETYPE_PATCH 1
/*************************************************************************/ /*************************************************************************/

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Quick computation of advance widths (specification only). */ /* Quick computation of advance widths (specification only). */
/* */ /* */
/* Copyright 2008, 2013, 2014 by */ /* Copyright 2008-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -77,7 +77,7 @@ FT_BEGIN_HEADER
/* and hinting of the glyph outline, are extremely slow by */ /* and hinting of the glyph outline, are extremely slow by */
/* comparison. */ /* comparison. */
/* */ /* */
#define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000UL #define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000L
/*************************************************************************/ /*************************************************************************/

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType API for controlling the auto-hinter (specification only). */ /* FreeType API for controlling the auto-hinter (specification only). */
/* */ /* */
/* Copyright 2012, 2013 by */ /* Copyright 2012-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -247,8 +247,8 @@ FT_BEGIN_HEADER
*/ */
typedef struct FT_Prop_GlyphToScriptMap_ typedef struct FT_Prop_GlyphToScriptMap_
{ {
FT_Face face; FT_Face face;
FT_Byte* map; FT_UShort* map;
} FT_Prop_GlyphToScriptMap; } FT_Prop_GlyphToScriptMap;
@ -300,7 +300,7 @@ FT_BEGIN_HEADER
* @description: * @description:
* *Experimental* *only* * *Experimental* *only*
* *
* If Freetype gets compiled with FT_CONFIG_OPTION_USE_HARFBUZZ to make * If FreeType gets compiled with FT_CONFIG_OPTION_USE_HARFBUZZ to make
* the HarfBuzz library access OpenType features for getting better * the HarfBuzz library access OpenType features for getting better
* glyph coverages, this property sets the (auto-fitter) script to be * glyph coverages, this property sets the (auto-fitter) script to be
* used for the default (OpenType) script data of a font's GSUB table. * used for the default (OpenType) script data of a font's GSUB table.
@ -391,6 +391,54 @@ FT_BEGIN_HEADER
} FT_Prop_IncreaseXHeight; } FT_Prop_IncreaseXHeight;
/**************************************************************************
*
* @property:
* warping
*
* @description:
* *Experimental* *only*
*
* If FreeType gets compiled with option AF_CONFIG_OPTION_USE_WARPER to
* activate the warp hinting code in the auto-hinter, this property
* switches warping on and off.
*
* Warping only works in `light' auto-hinting mode. The idea of the
* code is to slightly scale and shift a glyph along the non-hinted
* dimension (which is usually the horizontal axis) so that as much of
* its segments are aligned (more or less) to the grid. To find out a
* glyph's optimal scaling and shifting value, various parameter
* combinations are tried and scored.
*
* By default, warping is off. The example below shows how to switch on
* warping (omitting the error handling).
*
* {
* FT_Library library;
* FT_Bool warping = 1;
*
*
* FT_Init_FreeType( &library );
*
* FT_Property_Set( library, "autofitter",
* "warping", &warping );
* }
*
* @note:
* This property can be used with @FT_Property_Get also.
*
* The warping code can also change advance widths. Have a look at the
* `lsb_delta' and `rsb_delta' fields in the @FT_GlyphSlotRec structure
* for details on improving inter-glyph distances while rendering.
*
* Since warping is a global property of the auto-hinter it is best to
* change its value before rendering any face. Otherwise, you should
* reload all faces that get auto-hinted in `light' hinting mode.
*
*/
/* */ /* */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType exact bbox computation (specification). */ /* FreeType exact bbox computation (specification). */
/* */ /* */
/* Copyright 1996-2001, 2003, 2007, 2011, 2013 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType API for accessing BDF-specific strings (specification). */ /* FreeType API for accessing BDF-specific strings (specification). */
/* */ /* */
/* Copyright 2002-2004, 2006, 2009, 2014 by */ /* Copyright 2002-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType utility functions for bitmaps (specification). */ /* FreeType utility functions for bitmaps (specification). */
/* */ /* */
/* Copyright 2004-2006, 2008, 2013, 2014 by */ /* Copyright 2004-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -55,7 +55,7 @@ FT_BEGIN_HEADER
/*************************************************************************/ /*************************************************************************/
/* */ /* */
/* <Function> */ /* <Function> */
/* FT_Bitmap_New */ /* FT_Bitmap_Init */
/* */ /* */
/* <Description> */ /* <Description> */
/* Initialize a pointer to an @FT_Bitmap structure. */ /* Initialize a pointer to an @FT_Bitmap structure. */
@ -63,6 +63,14 @@ FT_BEGIN_HEADER
/* <InOut> */ /* <InOut> */
/* abitmap :: A pointer to the bitmap structure. */ /* abitmap :: A pointer to the bitmap structure. */
/* */ /* */
/* <Note> */
/* A deprecated name for the same function is `FT_Bitmap_New'. */
/* */
FT_EXPORT( void )
FT_Bitmap_Init( FT_Bitmap *abitmap );
/* deprecated */
FT_EXPORT( void ) FT_EXPORT( void )
FT_Bitmap_New( FT_Bitmap *abitmap ); FT_Bitmap_New( FT_Bitmap *abitmap );
@ -202,7 +210,7 @@ FT_BEGIN_HEADER
/* FT_Bitmap_Done */ /* FT_Bitmap_Done */
/* */ /* */
/* <Description> */ /* <Description> */
/* Destroy a bitmap object created with @FT_Bitmap_New. */ /* Destroy a bitmap object initialized with @FT_Bitmap_Init. */
/* */ /* */
/* <Input> */ /* <Input> */
/* library :: A handle to a library object. */ /* library :: A handle to a library object. */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Bzip2-compressed stream support. */ /* Bzip2-compressed stream support. */
/* */ /* */
/* Copyright 2010 by */ /* Copyright 2010-2015 by */
/* Joel Klinghed. */ /* Joel Klinghed. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType Cache subsystem (specification). */ /* FreeType Cache subsystem (specification). */
/* */ /* */
/* Copyright 1996-2008, 2010, 2013, 2014 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -667,8 +667,8 @@ FT_BEGIN_HEADER
typedef struct FTC_ImageTypeRec_ typedef struct FTC_ImageTypeRec_
{ {
FTC_FaceID face_id; FTC_FaceID face_id;
FT_Int width; FT_UInt width;
FT_Int height; FT_UInt height;
FT_Int32 flags; FT_Int32 flags;
} FTC_ImageTypeRec; } FTC_ImageTypeRec;

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType API for controlling the CFF driver (specification only). */ /* FreeType API for controlling the CFF driver (specification only). */
/* */ /* */
/* Copyright 2013, 2014 by */ /* Copyright 2013-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -119,3 +119,17 @@
/* lcd_filtering */ /* lcd_filtering */
/* */ /* */
/***************************************************************************/ /***************************************************************************/
/***************************************************************************/
/* */
/* <Chapter> */
/* error_codes */
/* */
/* <Title> */
/* Error Codes */
/* */
/* <Sections> */
/* error_enumerations */
/* error_code_values */
/* */
/***************************************************************************/

View File

@ -4,7 +4,8 @@
/* */ /* */
/* FreeType API for accessing CID font information (specification). */ /* FreeType API for accessing CID font information (specification). */
/* */ /* */
/* Copyright 2007, 2009 by Dereg Clegg, Michael Toftdal. */ /* Copyright 2007-2015 by */
/* Dereg Clegg and Michael Toftdal. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */ /* modified, and distributed under the terms of the FreeType project */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType error codes (specification). */ /* FreeType error codes (specification). */
/* */ /* */
/* Copyright 2002, 2004, 2006, 2007, 2010-2013 by */ /* Copyright 2002-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -16,18 +16,43 @@
/***************************************************************************/ /***************************************************************************/
/*******************************************************************/ /*************************************************************************/
/*******************************************************************/ /* */
/***** *****/ /* <Section> */
/***** LIST OF ERROR CODES/MESSAGES *****/ /* error_code_values */
/***** *****/ /* */
/*******************************************************************/ /* <Title> */
/*******************************************************************/ /* Error Code Values */
/* */
/* <Abstract> */
/* All possible error codes returned by FreeType functions. */
/* */
/* <Description> */
/* The list below is taken verbatim from the file `fterrdef.h' */
/* (loaded automatically by including `FT_FREETYPE_H'). The first */
/* argument of the `FT_ERROR_DEF_' macro is the error label; by */
/* default, the prefix `FT_Err_' gets added so that you get error */
/* names like `FT_Err_Cannot_Open_Resource'. The second argument is */
/* the error code, and the last argument an error string, which is not */
/* used by FreeType. */
/* */
/* Within your application you should *only* use error names and */
/* *never* its numeric values! The latter might (and actually do) */
/* change in forthcoming FreeType versions. */
/* */
/* Macro `FT_NOERRORDEF_' defines `FT_Err_Ok', which is always zero. */
/* See the `Error Enumerations' subsection how to automatically */
/* generate a list of error strings. */
/* */
/*************************************************************************/
/* You need to define both FT_ERRORDEF_ and FT_NOERRORDEF_ before */ /*************************************************************************/
/* including this file. */ /* */
/* <Enum> */
/* FT_Err_XXX */
/* */
/*************************************************************************/
/* generic errors */ /* generic errors */
@ -245,5 +270,7 @@
FT_ERRORDEF_( Corrupted_Font_Glyphs, 0xBA, FT_ERRORDEF_( Corrupted_Font_Glyphs, 0xBA,
"Font glyphs corrupted or missing fields" ) "Font glyphs corrupted or missing fields" )
/* */
/* END */ /* END */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType error code handling (specification). */ /* FreeType error code handling (specification). */
/* */ /* */
/* Copyright 1996-2002, 2004, 2007, 2013 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -18,68 +18,86 @@
/*************************************************************************/ /*************************************************************************/
/* */ /* */
/* This special header file is used to define the handling of FT2 */ /* <Section> */
/* enumeration constants. It can also be used to generate error message */ /* error_enumerations */
/* strings with a small macro trick explained below. */
/* */ /* */
/* I - Error Formats */ /* <Title> */
/* ----------------- */ /* Error Enumerations */
/* */
/* <Abstract> */
/* How to handle errors and error strings. */
/* */
/* <Description> */
/* The header file `fterrors.h' (which is automatically included by */
/* `freetype.h' defines the handling of FreeType's enumeration */
/* constants. It can also be used to generate error message strings */
/* with a small macro trick explained below. */
/* */
/* *Error* *Formats* */
/* */ /* */
/* The configuration macro FT_CONFIG_OPTION_USE_MODULE_ERRORS can be */ /* The configuration macro FT_CONFIG_OPTION_USE_MODULE_ERRORS can be */
/* defined in ftoption.h in order to make the higher byte indicate */ /* defined in `ftoption.h' in order to make the higher byte indicate */
/* the module where the error has happened (this is not compatible */ /* the module where the error has happened (this is not compatible */
/* with standard builds of FreeType 2). See the file `ftmoderr.h' for */ /* with standard builds of FreeType&nbsp;2, however). See the file */
/* more details. */ /* `ftmoderr.h' for more details. */
/* */ /* */
/* *Error* *Message* *Strings* */
/* */ /* */
/* II - Error Message strings */ /* Error definitions are set up with special macros that allow client */
/* -------------------------- */ /* applications to build a table of error message strings. The */
/* */ /* strings are not included in a normal build of FreeType&nbsp;2 to */
/* The error definitions below are made through special macros that */ /* save space (most client applications do not use them). */
/* allow client applications to build a table of error message strings */
/* if they need it. The strings are not included in a normal build of */
/* FreeType 2 to save space (most client applications do not use */
/* them). */
/* */ /* */
/* To do so, you have to define the following macros before including */ /* To do so, you have to define the following macros before including */
/* this file: */
/* */
/* FT_ERROR_START_LIST :: */
/* This macro is called before anything else to define the start of */
/* the error list. It is followed by several FT_ERROR_DEF calls */
/* (see below). */
/* */
/* FT_ERROR_DEF( e, v, s ) :: */
/* This macro is called to define one single error. */
/* `e' is the error code identifier (e.g. FT_Err_Invalid_Argument). */
/* `v' is the error numerical value. */
/* `s' is the corresponding error string. */
/* */
/* FT_ERROR_END_LIST :: */
/* This macro ends the list. */
/* */
/* Additionally, you have to undefine __FTERRORS_H__ before #including */
/* this file. */ /* this file. */
/* */ /* */
/* Here is a simple example: */ /* { */
/* FT_ERROR_START_LIST */
/* } */
/* */ /* */
/* This macro is called before anything else to define the start of */
/* the error list. It is followed by several FT_ERROR_DEF calls. */
/* */
/* { */
/* FT_ERROR_DEF( e, v, s ) */
/* } */
/* */
/* This macro is called to define one single error. `e' is the error */
/* code identifier (e.g., `Invalid_Argument'), `v' is the error's */
/* numerical value, and `s' is the corresponding error string. */
/* */
/* { */
/* FT_ERROR_END_LIST */
/* } */
/* */
/* This macro ends the list. */
/* */
/* Additionally, you have to undefine `__FTERRORS_H__' before */
/* #including this file. */
/* */
/* Here is a simple example. */
/* */
/* { */
/* #undef __FTERRORS_H__ */
/* #define FT_ERRORDEF( e, v, s ) { e, s }, */
/* #define FT_ERROR_START_LIST { */
/* #define FT_ERROR_END_LIST { 0, NULL } }; */
/* */
/* const struct */
/* { */ /* { */
/* #undef __FTERRORS_H__ */ /* int err_code; */
/* #define FT_ERRORDEF( e, v, s ) { e, s }, */ /* const char* err_msg; */
/* #define FT_ERROR_START_LIST { */ /* } ft_errors[] = */
/* #define FT_ERROR_END_LIST { 0, 0 } }; */
/* */ /* */
/* const struct */ /* #include FT_ERRORS_H */
/* { */ /* } */
/* int err_code; */
/* const char* err_msg; */
/* } ft_errors[] = */
/* */ /* */
/* #include FT_ERRORS_H */ /* Note that `FT_Err_Ok' is _not_ defined with `FT_ERRORDEF' but with */
/* } */ /* `FT_NOERRORDEF'; it is always zero. */
/* */ /* */
/*************************************************************************/ /*************************************************************************/
/* */
#ifndef __FTERRORS_H__ #ifndef __FTERRORS_H__
#define __FTERRORS_H__ #define __FTERRORS_H__

View File

@ -1,10 +1,10 @@
/***************************************************************************/ /***************************************************************************/
/* */ /* */
/* ftxf86.h */ /* ftfntfmt.h */
/* */ /* */
/* Support functions for X11. */ /* Support functions for font formats. */
/* */ /* */
/* Copyright 2002-2004, 2006, 2007, 2013 by */ /* Copyright 2002-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -16,8 +16,8 @@
/***************************************************************************/ /***************************************************************************/
#ifndef __FTXF86_H__ #ifndef __FTFNTFMT_H__
#define __FTXF86_H__ #define __FTFNTFMT_H__
#include <ft2build.h> #include <ft2build.h>
#include FT_FREETYPE_H #include FT_FREETYPE_H
@ -49,22 +49,20 @@ FT_BEGIN_HEADER
/* however, there are special cases (like in PDF devices) where it is */ /* however, there are special cases (like in PDF devices) where it is */
/* important to differentiate, in spite of FreeType's uniform API. */ /* important to differentiate, in spite of FreeType's uniform API. */
/* */ /* */
/* This function is in the X11/xf86 namespace for historical reasons */
/* and in no way depends on that windowing system. */
/* */
/*************************************************************************/ /*************************************************************************/
/*************************************************************************/ /*************************************************************************/
/* */ /* */
/* <Function> */ /* <Function> */
/* FT_Get_X11_Font_Format */ /* FT_Get_Font_Format */
/* */ /* */
/* <Description> */ /* <Description> */
/* Return a string describing the format of a given face, using values */ /* Return a string describing the format of a given face. Possible */
/* that can be used as an X11 FONT_PROPERTY. Possible values are */ /* values are `TrueType', `Type~1', `BDF', `PCF', `Type~42', */
/* `TrueType', `Type~1', `BDF', `PCF', `Type~42', `CID~Type~1', `CFF', */ /* `CID~Type~1', `CFF', `PFR', and `Windows~FNT'. */
/* `PFR', and `Windows~FNT'. */ /* */
/* The return value is suitable to be used as an X11 FONT_PROPERTY. */
/* */ /* */
/* <Input> */ /* <Input> */
/* face :: */ /* face :: */
@ -73,12 +71,22 @@ FT_BEGIN_HEADER
/* <Return> */ /* <Return> */
/* Font format string. NULL in case of error. */ /* Font format string. NULL in case of error. */
/* */ /* */
/* <Note> */
/* A deprecated name for the same function is */
/* `FT_Get_X11_Font_Format'. */
/* */
FT_EXPORT( const char* )
FT_Get_Font_Format( FT_Face face );
/* deprecated */
FT_EXPORT( const char* ) FT_EXPORT( const char* )
FT_Get_X11_Font_Format( FT_Face face ); FT_Get_X11_Font_Format( FT_Face face );
/* */ /* */
FT_END_HEADER FT_END_HEADER
#endif /* __FTXF86_H__ */ #endif /* __FTFNTFMT_H__ */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Access of TrueType's `gasp' table (specification). */ /* Access of TrueType's `gasp' table (specification). */
/* */ /* */
/* Copyright 2007, 2008, 2011 by */ /* Copyright 2007-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType convenience functions to handle glyphs (specification). */ /* FreeType convenience functions to handle glyphs (specification). */
/* */ /* */
/* Copyright 1996-2003, 2006, 2008, 2009, 2011, 2013, 2014 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType API for validating TrueTypeGX/AAT tables (specification). */ /* FreeType API for validating TrueTypeGX/AAT tables (specification). */
/* */ /* */
/* Copyright 2004-2006, 2013 by */ /* Copyright 2004-2015 by */
/* Masatake YAMATO, Redhat K.K, */ /* Masatake YAMATO, Redhat K.K, */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Gzip-compressed stream support. */ /* Gzip-compressed stream support. */
/* */ /* */
/* Copyright 2002-2004, 2006, 2013 by */ /* Copyright 2002-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -5,7 +5,7 @@
/* FreeType glyph image formats and default raster interface */ /* FreeType glyph image formats and default raster interface */
/* (specification). */ /* (specification). */
/* */ /* */
/* Copyright 1996-2010, 2013, 2014 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -258,11 +258,6 @@ FT_BEGIN_HEADER
/* field is intended for paletted pixel modes. Not */ /* field is intended for paletted pixel modes. Not */
/* used currently. */ /* used currently. */
/* */ /* */
/* <Note> */
/* For now, the only pixel modes supported by FreeType are mono and */
/* grays. However, drivers might be added in the future to support */
/* more `colorful' options. */
/* */
typedef struct FT_Bitmap_ typedef struct FT_Bitmap_
{ {
unsigned int rows; unsigned int rows;
@ -1078,10 +1073,10 @@ FT_BEGIN_HEADER
/* FT_Raster_ResetFunc */ /* FT_Raster_ResetFunc */
/* */ /* */
/* <Description> */ /* <Description> */
/* FreeType provides an area of memory called the `render pool', */ /* FreeType used to provide an area of memory called the `render */
/* available to all registered rasters. This pool can be freely used */ /* pool' available to all registered rasters. This was not thread */
/* during a given scan-conversion but is shared by all rasters. Its */ /* safe however and now FreeType never allocates this pool. NULL */
/* content is thus transient. */ /* is always passed in as pool_base. */
/* */ /* */
/* This function is called each time the render pool changes, or just */ /* This function is called each time the render pool changes, or just */
/* after a new raster object is created. */ /* after a new raster object is created. */
@ -1094,10 +1089,9 @@ FT_BEGIN_HEADER
/* pool_size :: The size in bytes of the render pool. */ /* pool_size :: The size in bytes of the render pool. */
/* */ /* */
/* <Note> */ /* <Note> */
/* Rasters can ignore the render pool and rely on dynamic memory */ /* Rasters should ignore the render pool and rely on dynamic or stack */
/* allocation if they want to (a handle to the memory allocator is */ /* allocation if they want to (a handle to the memory allocator is */
/* passed to the raster constructor). However, this is not */ /* passed to the raster constructor). */
/* recommended for efficiency purposes. */
/* */ /* */
typedef void typedef void
(*FT_Raster_ResetFunc)( FT_Raster raster, (*FT_Raster_ResetFunc)( FT_Raster raster,

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType incremental loading (specification). */ /* FreeType incremental loading (specification). */
/* */ /* */
/* Copyright 2002, 2003, 2006-2008, 2010, 2014 by */ /* Copyright 2002-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -5,7 +5,7 @@
/* FreeType API for color filtering of subpixel bitmap glyphs */ /* FreeType API for color filtering of subpixel bitmap glyphs */
/* (specification). */ /* (specification). */
/* */ /* */
/* Copyright 2006-2008, 2010, 2013, 2014 by */ /* Copyright 2006-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Generic list support for FreeType (specification). */ /* Generic list support for FreeType (specification). */
/* */ /* */
/* Copyright 1996-2001, 2003, 2007, 2010, 2013, 2014 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* LZW-compressed stream support. */ /* LZW-compressed stream support. */
/* */ /* */
/* Copyright 2004, 2006 by */ /* Copyright 2004-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Additional Mac-specific API. */ /* Additional Mac-specific API. */
/* */ /* */
/* Copyright 1996-2001, 2004, 2006, 2007, 2013 by */ /* Copyright 1996-2015 by */
/* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. */ /* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType Multiple Master font interface (specification). */ /* FreeType Multiple Master font interface (specification). */
/* */ /* */
/* Copyright 1996-2001, 2003, 2004, 2006, 2009, 2013 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -95,8 +95,8 @@ FT_BEGIN_HEADER
/* */ /* */
/* num_designs :: Number of designs; should be normally 2^num_axis */ /* 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 */ /* allows for intermediate designs to be present. */
/* number cannot exceed~16. */ /* This number cannot exceed~16. */
/* */ /* */
/* axis :: A table of axis descriptors. */ /* axis :: A table of axis descriptors. */
/* */ /* */
@ -201,10 +201,10 @@ FT_BEGIN_HEADER
/* associated with them. The font can tell the */ /* associated with them. The font can tell the */
/* user that, for example, Weight=1.5 is `Bold'. */ /* user that, for example, Weight=1.5 is `Bold'. */
/* */ /* */
/* axis :: A table of axis descriptors. */ /* axis :: An axis descriptor table. */
/* GX fonts contain slightly more data than MM. */ /* GX fonts contain slightly more data than MM. */
/* */ /* */
/* namedstyles :: A table of named styles. */ /* namedstyle :: A named style table. */
/* Only meaningful with GX. */ /* Only meaningful with GX. */
/* */ /* */
typedef struct FT_MM_Var_ typedef struct FT_MM_Var_
@ -280,8 +280,10 @@ FT_BEGIN_HEADER
/* face :: A handle to the source face. */ /* face :: A handle to the source face. */
/* */ /* */
/* <Input> */ /* <Input> */
/* num_coords :: The number of design coordinates (must be equal to */ /* num_coords :: The number of available design coordinates. If it */
/* the number of axes in the font). */ /* is larger than the number of axes, ignore the excess */
/* values. If it is smaller than the number of axes, */
/* use default values for the remaining axes. */
/* */ /* */
/* coords :: An array of design coordinates. */ /* coords :: An array of design coordinates. */
/* */ /* */
@ -307,8 +309,10 @@ FT_BEGIN_HEADER
/* face :: A handle to the source face. */ /* face :: A handle to the source face. */
/* */ /* */
/* <Input> */ /* <Input> */
/* num_coords :: The number of design coordinates (must be equal to */ /* num_coords :: The number of available design coordinates. If it */
/* the number of axes in the font). */ /* is larger than the number of axes, ignore the excess */
/* values. If it is smaller than the number of axes, */
/* use default values for the remaining axes. */
/* */ /* */
/* coords :: An array of design coordinates. */ /* coords :: An array of design coordinates. */
/* */ /* */
@ -334,8 +338,10 @@ FT_BEGIN_HEADER
/* face :: A handle to the source face. */ /* face :: A handle to the source face. */
/* */ /* */
/* <Input> */ /* <Input> */
/* num_coords :: The number of design coordinates (must be equal to */ /* num_coords :: The number of available design coordinates. If it */
/* the number of axes in the font). */ /* is larger than the number of axes, ignore the excess */
/* values. If it is smaller than the number of axes, */
/* use default values for the remaining axes. */
/* */ /* */
/* coords :: The design coordinates array (each element must be */ /* coords :: The design coordinates array (each element must be */
/* between 0 and 1.0). */ /* between 0 and 1.0). */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType modules public interface (specification). */ /* FreeType modules public interface (specification). */
/* */ /* */
/* Copyright 1996-2003, 2006, 2008-2010, 2012, 2013 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -63,7 +63,7 @@ FT_BEGIN_HEADER
/* psaux */ /* psaux */
/* pshinter */ /* pshinter */
/* psnames */ /* psnames */
/* raster1, raster5 */ /* raster1 */
/* sfnt */ /* sfnt */
/* smooth, smooth-lcd, smooth-lcdv */ /* smooth, smooth-lcd, smooth-lcdv */
/* truetype */ /* truetype */
@ -469,7 +469,9 @@ FT_BEGIN_HEADER
/* <Description> */ /* <Description> */
/* This function is used to create a new FreeType library instance */ /* This function is used to create a new FreeType library instance */
/* from a given memory object. It is thus possible to use libraries */ /* from a given memory object. It is thus possible to use libraries */
/* with distinct memory allocators within the same program. */ /* with distinct memory allocators within the same program. Note, */
/* however, that the used @FT_Memory structure is expected to remain */
/* valid for the life of the @FT_Library object. */
/* */ /* */
/* Normally, you would call this function (followed by a call to */ /* Normally, you would call this function (followed by a call to */
/* @FT_Add_Default_Modules or a series of calls to @FT_Add_Module) */ /* @FT_Add_Default_Modules or a series of calls to @FT_Add_Module) */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType module error offsets (specification). */ /* FreeType module error offsets (specification). */
/* */ /* */
/* Copyright 2001-2005, 2010, 2013 by */ /* Copyright 2001-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType API for validating OpenType tables (specification). */ /* FreeType API for validating OpenType tables (specification). */
/* */ /* */
/* Copyright 2004-2007, 2013, 2014 by */ /* Copyright 2004-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -5,7 +5,7 @@
/* Support for the FT_Outline type used to store glyph shapes of */ /* Support for the FT_Outline type used to store glyph shapes of */
/* most scalable font formats (specification). */ /* most scalable font formats (specification). */
/* */ /* */
/* Copyright 1996-2003, 2005-2014 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -354,8 +354,8 @@ FT_BEGIN_HEADER
/* */ /* */
/* { */ /* { */
/* FT_Load_Glyph( face, index, FT_LOAD_DEFAULT ); */ /* FT_Load_Glyph( face, index, FT_LOAD_DEFAULT ); */
/* if ( face->slot->format == FT_GLYPH_FORMAT_OUTLINE ) */ /* if ( face->glyph->format == FT_GLYPH_FORMAT_OUTLINE ) */
/* FT_Outline_Embolden( &face->slot->outline, strength ); */ /* FT_Outline_Embolden( &face->glyph->outline, strength ); */
/* } */ /* } */
/* */ /* */
/* To get meaningful results, font scaling values must be set with */ /* To get meaningful results, font scaling values must be set with */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType API for accessing PFR-specific data (specification only). */ /* FreeType API for accessing PFR-specific data (specification only). */
/* */ /* */
/* Copyright 2002, 2003, 2004, 2006, 2008, 2009 by */ /* Copyright 2002-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType renderer modules public interface (specification). */ /* FreeType renderer modules public interface (specification). */
/* */ /* */
/* Copyright 1996-2001, 2005, 2006, 2010 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -212,13 +212,8 @@ FT_BEGIN_HEADER
/* */ /* */
/* This doesn't change the current renderer for other formats. */ /* This doesn't change the current renderer for other formats. */
/* */ /* */
/* Currently, only the B/W renderer, if compiled with */ /* Currently, no FreeType renderer module uses `parameters'; you */
/* FT_RASTER_OPTION_ANTI_ALIASING (providing a 5-levels */ /* should thus always pass NULL as the value. */
/* anti-aliasing mode; this option must be set directly in */
/* `ftraster.c' and is undefined by default) accepts a single tag */
/* `pal5' to set its gray palette as a character string with */
/* 5~elements. Consequently, the third and fourth argument are zero */
/* normally. */
/* */ /* */
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Set_Renderer( FT_Library library, FT_Set_Renderer( FT_Library library,

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType size objects management (specification). */ /* FreeType size objects management (specification). */
/* */ /* */
/* Copyright 1996-2001, 2003, 2004, 2006, 2009, 2013 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -7,7 +7,7 @@
/* */ /* */
/* This is _not_ used to retrieve glyph names! */ /* This is _not_ used to retrieve glyph names! */
/* */ /* */
/* Copyright 1996-2003, 2006, 2009, 2010, 2013 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType path stroker (specification). */ /* FreeType path stroker (specification). */
/* */ /* */
/* Copyright 2002-2006, 2008, 2009, 2011-2012, 2014 by */ /* Copyright 2002-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -5,7 +5,7 @@
/* FreeType synthesizing code for emboldening and slanting */ /* FreeType synthesizing code for emboldening and slanting */
/* (specification). */ /* (specification). */
/* */ /* */
/* Copyright 2000-2001, 2003, 2006, 2008, 2012, 2013 by */ /* Copyright 2000-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -62,8 +62,10 @@ FT_BEGIN_HEADER
/* a wrapper for @FT_Outline_Embolden and @FT_Bitmap_Embolden. */ /* a wrapper for @FT_Outline_Embolden and @FT_Bitmap_Embolden. */
/* */ /* */
/* For emboldened outlines the height, width, and advance metrics are */ /* For emboldened outlines the height, width, and advance metrics are */
/* increased by the strength of the emboldening. You can also call */ /* increased by the strength of the emboldening -- this even affects */
/* @FT_Outline_Get_CBox to get precise values. */ /* mono-width fonts! */
/* */
/* You can also call @FT_Outline_Get_CBox to get precise values. */
FT_EXPORT( void ) FT_EXPORT( void )
FT_GlyphSlot_Embolden( FT_GlyphSlot slot ); FT_GlyphSlot_Embolden( FT_GlyphSlot slot );

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType low-level system interface definition (specification). */ /* FreeType low-level system interface definition (specification). */
/* */ /* */
/* Copyright 1996-2001, 2002, 2005, 2010, 2014 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType trigonometric functions (specification). */ /* FreeType trigonometric functions (specification). */
/* */ /* */
/* Copyright 2001, 2003, 2005, 2007, 2013 by */ /* Copyright 2001-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -225,8 +225,8 @@ FT_BEGIN_HEADER
* *
* @description: * @description:
* Return the unit vector corresponding to a given angle. After the * Return the unit vector corresponding to a given angle. After the
* call, the value of `vec.x' will be `sin(angle)', and the value of * call, the value of `vec.x' will be `cos(angle)', and the value of
* `vec.y' will be `cos(angle)'. * `vec.y' will be `sin(angle)'.
* *
* This function is useful to retrieve both the sinus and cosinus of a * This function is useful to retrieve both the sinus and cosinus of a
* given angle quickly. * given angle quickly.

View File

@ -0,0 +1,310 @@
/***************************************************************************/
/* */
/* ftttdrv.h */
/* */
/* FreeType API for controlling the TrueType driver */
/* (specification only). */
/* */
/* Copyright 2013-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
#ifndef __FTTTDRV_H__
#define __FTTTDRV_H__
#include <ft2build.h>
#include FT_FREETYPE_H
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
#error "Please fix the directory search order for header files"
#error "so that freetype.h of FreeType 2 is found first."
#endif
FT_BEGIN_HEADER
/**************************************************************************
*
* @section:
* tt_driver
*
* @title:
* The TrueType driver
*
* @abstract:
* Controlling the TrueType driver module.
*
* @description:
* While FreeType's TrueType driver doesn't expose API functions by
* itself, it is possible to control its behaviour with @FT_Property_Set
* and @FT_Property_Get. The following lists the available properties
* together with the necessary macros and structures.
*
* The TrueType driver's module name is `truetype'.
*
* We start with a list of definitions, kindly provided by Greg
* Hitchcock.
*
* _Bi-Level_ _Rendering_
*
* Monochromatic rendering, exclusively used in the early days of
* TrueType by both Apple and Microsoft. Microsoft's GDI interface
* supported hinting of the right-side bearing point, such that the
* advance width could be non-linear. Most often this was done to
* achieve some level of glyph symmetry. To enable reasonable
* performance (e.g., not having to run hinting on all glyphs just to
* get the widths) there was a bit in the head table indicating if the
* side bearing was hinted, and additional tables, `hdmx' and `LTSH', to
* cache hinting widths across multiple sizes and device aspect ratios.
*
* _Font_ _Smoothing_
*
* Microsoft's GDI implementation of anti-aliasing. Not traditional
* anti-aliasing as the outlines were hinted before the sampling. The
* widths matched the bi-level rendering.
*
* _ClearType_ _Rendering_
*
* Technique that uses physical subpixels to improve rendering on LCD
* (and other) displays. Because of the higher resolution, many methods
* of improving symmetry in glyphs through hinting the right-side
* bearing were no longer necessary. This lead to what GDI calls
* `natural widths' ClearType, see
* http://www.beatstamm.com/typography/RTRCh4.htm#Sec21. Since hinting
* has extra resolution, most non-linearity went away, but it is still
* possible for hints to change the advance widths in this mode.
*
* _ClearType_ _Compatible_ _Widths_
*
* One of the earliest challenges with ClearType was allowing the
* implementation in GDI to be selected without requiring all UI and
* documents to reflow. To address this, a compatible method of
* rendering ClearType was added where the font hints are executed once
* to determine the width in bi-level rendering, and then re-run in
* ClearType, with the difference in widths being absorbed in the font
* hints for ClearType (mostly in the white space of hints); see
* http://www.beatstamm.com/typography/RTRCh4.htm#Sec20. Somewhat by
* definition, compatible width ClearType allows for non-linear widths,
* but only when the bi-level version has non-linear widths.
*
* _ClearType_ _Subpixel_ _Positioning_
*
* One of the nice benefits of ClearType is the ability to more crisply
* display fractional widths; unfortunately, the GDI model of integer
* bitmaps did not support this. However, the WPF and Direct Write
* frameworks do support fractional widths. DWrite calls this `natural
* mode', not to be confused with GDI's `natural widths'. Subpixel
* positioning, in the current implementation of Direct Write,
* unfortunately does not support hinted advance widths, see
* http://www.beatstamm.com/typography/RTRCh4.htm#Sec22. Note that the
* TrueType interpreter fully allows the advance width to be adjusted in
* this mode, just the DWrite client will ignore those changes.
*
* _ClearType_ _Backwards_ _Compatibility_
*
* This is a set of exceptions made in the TrueType interpreter to
* minimize hinting techniques that were problematic with the extra
* resolution of ClearType; see
* http://www.beatstamm.com/typography/RTRCh4.htm#Sec1 and
* http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx.
* This technique is not to be confused with ClearType compatible
* widths. ClearType backwards compatibility has no direct impact on
* changing advance widths, but there might be an indirect impact on
* disabling some deltas. This could be worked around in backwards
* compatibility mode.
*
* _Native_ _ClearType_ _Mode_
*
* (Not to be confused with `natural widths'.) This mode removes all
* the exceptions in the TrueType interpreter when running with
* ClearType. Any issues on widths would still apply, though.
*
*/
/**************************************************************************
*
* @property:
* interpreter-version
*
* @description:
* Currently, two versions are available, representing the bytecode
* interpreter with and without subpixel hinting support,
* respectively. The default is subpixel support if
* TT_CONFIG_OPTION_SUBPIXEL_HINTING is defined, and no subpixel
* support otherwise (since it isn't available then).
*
* If subpixel hinting is on, many TrueType bytecode instructions behave
* differently compared to B/W or grayscale rendering (except if `native
* ClearType' is selected by the font). The main idea is to render at a
* much increased horizontal resolution, then sampling down the created
* output to subpixel precision. However, many older fonts are not
* suited to this and must be specially taken care of by applying
* (hardcoded) font-specific tweaks.
*
* Details on subpixel hinting and some of the necessary tweaks can be
* found in Greg Hitchcock's whitepaper at
* `http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx'.
*
* The following example code demonstrates how to activate subpixel
* hinting (omitting the error handling).
*
* {
* FT_Library library;
* FT_Face face;
* FT_UInt interpreter_version = TT_INTERPRETER_VERSION_38;
*
*
* FT_Init_FreeType( &library );
*
* FT_Property_Set( library, "truetype",
* "interpreter-version",
* &interpreter_version );
* }
*
* @note:
* This property can be used with @FT_Property_Get also.
*
*/
/**************************************************************************
*
* @enum:
* TT_INTERPRETER_VERSION_XXX
*
* @description:
* A list of constants used for the @interpreter-version property to
* select the hinting engine for Truetype fonts.
*
* The numeric value in the constant names represents the version
* number as returned by the `GETINFO' bytecode instruction.
*
* @values:
* TT_INTERPRETER_VERSION_35 ::
* Version~35 corresponds to MS rasterizer v.1.7 as used e.g. in
* Windows~98; only grayscale and B/W rasterizing is supported.
*
* TT_INTERPRETER_VERSION_38 ::
* Version~38 corresponds to MS rasterizer v.1.9; it is roughly
* equivalent to the hinting provided by DirectWrite ClearType (as
* can be found, for example, in the Internet Explorer~9 running on
* Windows~7).
*
* @note:
* This property controls the behaviour of the bytecode interpreter
* and thus how outlines get hinted. It does *not* control how glyph
* get rasterized! In particular, it does not control subpixel color
* filtering.
*
* If FreeType has not been compiled with configuration option
* FT_CONFIG_OPTION_SUBPIXEL_HINTING, selecting version~38 causes an
* `FT_Err_Unimplemented_Feature' error.
*
* Depending on the graphics framework, Microsoft uses different
* bytecode and rendering engines. As a consequence, the version
* numbers returned by a call to the `GETINFO' bytecode instruction are
* more convoluted than desired.
*
* Here are two tables that try to shed some light on the possible
* values for the MS rasterizer engine, together with the additional
* features introduced by it.
*
* {
* GETINFO framework version feature
* -------------------------------------------------------------------
* 3 GDI (Win 3.1), v1.0 16-bit, first version
* TrueImage
* 33 GDI (Win NT 3.1), v1.5 32-bit
* HP Laserjet
* 34 GDI (Win 95) v1.6 font smoothing,
* new SCANTYPE opcode
* 35 GDI (Win 98/2000) v1.7 (UN)SCALED_COMPONENT_OFFSET
* bits in composite glyphs
* 36 MGDI (Win CE 2) v1.6+ classic ClearType
* 37 GDI (XP and later), v1.8 ClearType
* GDI+ old (before Vista)
* 38 GDI+ old (Vista, Win 7), v1.9 subpixel ClearType,
* WPF Y-direction ClearType,
* additional error checking
* 39 DWrite (before Win 8) v2.0 subpixel ClearType flags
* in GETINFO opcode,
* bug fixes
* 40 GDI+ (after Win 7), v2.1 Y-direction ClearType flag
* DWrite (Win 8) in GETINFO opcode,
* Gray ClearType
* }
*
* The `version' field gives a rough orientation only, since some
* applications provided certain features much earlier (as an example,
* Microsoft Reader used subpixel and Y-direction ClearType already in
* Windows 2000). Similarly, updates to a given framework might include
* improved hinting support.
*
* {
* version sampling rendering comment
* x y x y
* --------------------------------------------------------------
* v1.0 normal normal B/W B/W bi-level
* v1.6 high high gray gray grayscale
* v1.8 high normal color-filter B/W (GDI) ClearType
* v1.9 high high color-filter gray Color ClearType
* v2.1 high normal gray B/W Gray ClearType
* v2.1 high high gray gray Gray ClearType
* }
*
* Color and Gray ClearType are the two available variants of
* `Y-direction ClearType', meaning grayscale rasterization along the
* Y-direction; the name used in the TrueType specification for this
* feature is `symmetric smoothing'. `Classic ClearType' is the
* original algorithm used before introducing a modified version in
* Win~XP. Another name for v1.6's grayscale rendering is `font
* smoothing', and `Color ClearType' is sometimes also called `DWrite
* ClearType'. To differentiate between today's Color ClearType and the
* earlier ClearType variant with B/W rendering along the vertical axis,
* the latter is sometimes called `GDI ClearType'.
*
* `Normal' and `high' sampling describe the (virtual) resolution to
* access the rasterized outline after the hinting process. `Normal'
* means 1 sample per grid line (i.e., B/W). In the current Microsoft
* implementation, `high' means an extra virtual resolution of 16x16 (or
* 16x1) grid lines per pixel for bytecode instructions like `MIRP'.
* After hinting, these 16 grid lines are mapped to 6x5 (or 6x1) grid
* lines for color filtering if Color ClearType is activated.
*
* Note that `Gray ClearType' is essentially the same as v1.6's
* grayscale rendering. However, the GETINFO instruction handles it
* differently: v1.6 returns bit~12 (hinting for grayscale), while v2.1
* returns bits~13 (hinting for ClearType), 18 (symmetrical smoothing),
* and~19 (Gray ClearType). Also, this mode respects bits 2 and~3 for
* the version~1 gasp table exclusively (like Color ClearType), while
* v1.6 only respects the values of version~0 (bits 0 and~1).
*
* FreeType doesn't provide all capabilities of the most recent
* ClearType incarnation, thus we identify our subpixel support as
* version~38.
*
*/
#define TT_INTERPRETER_VERSION_35 35
#define TT_INTERPRETER_VERSION_38 38
/* */
FT_END_HEADER
#endif /* __FTTTDRV_H__ */
/* END */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType simple types definitions (specification only). */ /* FreeType simple types definitions (specification only). */
/* */ /* */
/* Copyright 1996-2002, 2004, 2006-2009, 2012-2014 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType API for accessing Windows fnt-specific data. */ /* FreeType API for accessing Windows fnt-specific data. */
/* */ /* */
/* Copyright 2003, 2004, 2008 by */ /* Copyright 2003-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -59,7 +59,7 @@ FT_BEGIN_HEADER
* A list of valid values for the `charset' byte in * A list of valid values for the `charset' byte in
* @FT_WinFNT_HeaderRec. Exact mapping tables for the various cpXXXX * @FT_WinFNT_HeaderRec. Exact mapping tables for the various cpXXXX
* encodings (except for cp1361) can be found at * encodings (except for cp1361) can be found at
* ftp://ftp.unicode.org/public in the MAPPINGS/VENDORS/MICSFT/WINDOWS * ftp://ftp.unicode.org/Public in the MAPPINGS/VENDORS/MICSFT/WINDOWS
* subdirectory. cp1361 is roughly a superset of * subdirectory. cp1361 is roughly a superset of
* MAPPINGS/OBSOLETE/EASTASIA/KSC/JOHAB.TXT. * MAPPINGS/OBSOLETE/EASTASIA/KSC/JOHAB.TXT.
* *
@ -95,7 +95,7 @@ FT_BEGIN_HEADER
* second default codepage that most international versions of * second default codepage that most international versions of
* Windows have. It is one of the OEM codepages from * Windows have. It is one of the OEM codepages from
* *
* http://www.microsoft.com/globaldev/reference/cphome.mspx, * https://msdn.microsoft.com/en-us/goglobal/bb964655,
* *
* and is used for the `DOS boxes', to support legacy applications. * and is used for the `DOS boxes', to support legacy applications.
* A German Windows version for example usually uses ANSI codepage * A German Windows version for example usually uses ANSI codepage

View File

@ -4,7 +4,7 @@
/* */ /* */
/* High-level `autohint' module-specific interface (specification). */ /* High-level `autohint' module-specific interface (specification). */
/* */ /* */
/* Copyright 1996-2002, 2007, 2009, 2012 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Arithmetic computations (specification). */ /* Arithmetic computations (specification). */
/* */ /* */
/* Copyright 1996-2006, 2008, 2009, 2012-2014 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -299,6 +299,18 @@ FT_BEGIN_HEADER
FT_Long scaling ); FT_Long scaling );
/*
* This function normalizes a vector and returns its original length.
* The normalized vector is a 16.16 fixed-point unit vector with length
* close to 0x10000. The accuracy of the returned length is limited to
* 16 bits also. The function utilizes quick inverse square root
* approximation without divisions and square roots relying on Newton's
* iterations instead.
*/
FT_BASE( FT_UInt32 )
FT_Vector_NormLen( FT_Vector* vector );
/* /*
* Return -1, 0, or +1, depending on the orientation of a given corner. * Return -1, 0, or +1, depending on the orientation of a given corner.
* We use the Cartesian coordinate system, with positive vertical values * We use the Cartesian coordinate system, with positive vertical values

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Debugging and logging component (specification). */ /* Debugging and logging component (specification). */
/* */ /* */
/* Copyright 1996-2002, 2004, 2006-2009, 2013 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -140,7 +140,7 @@ FT_BEGIN_HEADER
/* This function may be useful if you want to control FreeType 2's */ /* This function may be useful if you want to control FreeType 2's */
/* debug level in your application. */ /* debug level in your application. */
/* */ /* */
FT_BASE( const char * ) FT_BASE( const char* )
FT_Trace_Get_Name( FT_Int idx ); FT_Trace_Get_Name( FT_Int idx );

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType font driver interface (specification). */ /* FreeType font driver interface (specification). */
/* */ /* */
/* Copyright 1996-2003, 2006, 2008, 2011-2013 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* The FreeType glyph loader (specification). */ /* The FreeType glyph loader (specification). */
/* */ /* */
/* Copyright 2002, 2003, 2005, 2006 by */ /* Copyright 2002-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg */ /* David Turner, Robert Wilhelm, and Werner Lemberg */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -121,23 +121,25 @@ FT_BEGIN_HEADER
FT_UInt n_contours ); FT_UInt n_contours );
#define FT_GLYPHLOADER_CHECK_P( _loader, _count ) \ #define FT_GLYPHLOADER_CHECK_P( _loader, _count ) \
( (_count) == 0 || \ ( (_count) == 0 || \
( (_loader)->base.outline.n_points + \ ( (FT_UInt)(_loader)->base.outline.n_points + \
(_loader)->current.outline.n_points + \ (FT_UInt)(_loader)->current.outline.n_points + \
(unsigned long)(_count) ) <= (_loader)->max_points ) (FT_UInt)(_count) ) <= (_loader)->max_points )
#define FT_GLYPHLOADER_CHECK_C( _loader, _count ) \ #define FT_GLYPHLOADER_CHECK_C( _loader, _count ) \
( (_count) == 0 || \ ( (_count) == 0 || \
( (_loader)->base.outline.n_contours + \ ( (FT_UInt)(_loader)->base.outline.n_contours + \
(_loader)->current.outline.n_contours + \ (FT_UInt)(_loader)->current.outline.n_contours + \
(unsigned long)(_count)) <= (_loader)->max_contours ) (FT_UInt)(_count) ) <= (_loader)->max_contours )
#define FT_GLYPHLOADER_CHECK_POINTS( _loader, _points, _contours ) \ #define FT_GLYPHLOADER_CHECK_POINTS( _loader, _points, _contours ) \
( ( FT_GLYPHLOADER_CHECK_P( _loader, _points ) && \ ( ( FT_GLYPHLOADER_CHECK_P( _loader, _points ) && \
FT_GLYPHLOADER_CHECK_C( _loader, _contours ) ) \ FT_GLYPHLOADER_CHECK_C( _loader, _contours ) ) \
? 0 \ ? 0 \
: FT_GlyphLoader_CheckPoints( (_loader), (_points), (_contours) ) ) : FT_GlyphLoader_CheckPoints( (_loader), \
(FT_UInt)(_points), \
(FT_UInt)(_contours) ) )
/* check that there is enough space to add `n_subs' sub-glyphs to */ /* check that there is enough space to add `n_subs' sub-glyphs to */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* The FreeType memory management macros (specification). */ /* The FreeType memory management macros (specification). */
/* */ /* */
/* Copyright 1996-2002, 2004-2007, 2010, 2013 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg */ /* David Turner, Robert Wilhelm, and Werner Lemberg */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -215,11 +215,14 @@ FT_BEGIN_HEADER
#define FT_MEM_SET_ERROR( cond ) ( (cond), error != 0 ) #define FT_MEM_SET_ERROR( cond ) ( (cond), error != 0 )
#define FT_MEM_SET( dest, byte, count ) ft_memset( dest, byte, count ) #define FT_MEM_SET( dest, byte, count ) \
ft_memset( dest, byte, (FT_Offset)(count) )
#define FT_MEM_COPY( dest, source, count ) ft_memcpy( dest, source, count ) #define FT_MEM_COPY( dest, source, count ) \
ft_memcpy( dest, source, (FT_Offset)(count) )
#define FT_MEM_MOVE( dest, source, count ) ft_memmove( dest, source, count ) #define FT_MEM_MOVE( dest, source, count ) \
ft_memmove( dest, source, (FT_Offset)(count) )
#define FT_MEM_ZERO( dest, count ) FT_MEM_SET( dest, 0, count ) #define FT_MEM_ZERO( dest, count ) FT_MEM_SET( dest, 0, count )
@ -227,14 +230,19 @@ FT_BEGIN_HEADER
#define FT_ZERO( p ) FT_MEM_ZERO( p, sizeof ( *(p) ) ) #define FT_ZERO( p ) FT_MEM_ZERO( p, sizeof ( *(p) ) )
#define FT_ARRAY_ZERO( dest, count ) \ #define FT_ARRAY_ZERO( dest, count ) \
FT_MEM_ZERO( dest, (count) * sizeof ( *(dest) ) ) FT_MEM_ZERO( dest, \
(FT_Offset)(count) * sizeof ( *(dest) ) )
#define FT_ARRAY_COPY( dest, source, count ) \ #define FT_ARRAY_COPY( dest, source, count ) \
FT_MEM_COPY( dest, source, (count) * sizeof ( *(dest) ) ) FT_MEM_COPY( dest, \
source, \
(FT_Offset)(count) * sizeof ( *(dest) ) )
#define FT_ARRAY_MOVE( dest, source, count ) \ #define FT_ARRAY_MOVE( dest, source, count ) \
FT_MEM_MOVE( dest, source, (count) * sizeof ( *(dest) ) ) FT_MEM_MOVE( dest, \
source, \
(FT_Offset)(count) * sizeof ( *(dest) ) )
/* /*

View File

@ -4,7 +4,7 @@
/* */ /* */
/* The FreeType private base classes (specification). */ /* The FreeType private base classes (specification). */
/* */ /* */
/* Copyright 1996-2006, 2008, 2010, 2012-2013 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -83,11 +83,12 @@ FT_BEGIN_HEADER
x > y ? x + ( 3 * y >> 3 ) \ x > y ? x + ( 3 * y >> 3 ) \
: y + ( 3 * x >> 3 ) ) : y + ( 3 * x >> 3 ) )
#define FT_PAD_FLOOR( x, n ) ( (x) & ~((n)-1) ) /* we use FT_TYPEOF to suppress signedness compilation warnings */
#define FT_PAD_FLOOR( x, n ) ( (x) & ~FT_TYPEOF( x )( (n)-1 ) )
#define FT_PAD_ROUND( x, n ) FT_PAD_FLOOR( (x) + ((n)/2), n ) #define FT_PAD_ROUND( x, n ) FT_PAD_FLOOR( (x) + ((n)/2), n )
#define FT_PAD_CEIL( x, n ) FT_PAD_FLOOR( (x) + ((n)-1), n ) #define FT_PAD_CEIL( x, n ) FT_PAD_FLOOR( (x) + ((n)-1), n )
#define FT_PIX_FLOOR( x ) ( (x) & ~63 ) #define FT_PIX_FLOOR( x ) ( (x) & ~FT_TYPEOF( x )63 )
#define FT_PIX_ROUND( x ) FT_PIX_FLOOR( (x) + 32 ) #define FT_PIX_ROUND( x ) FT_PIX_FLOOR( (x) + 32 )
#define FT_PIX_CEIL( x ) FT_PIX_FLOOR( (x) + 63 ) #define FT_PIX_CEIL( x ) FT_PIX_FLOOR( (x) + 63 )
@ -404,7 +405,7 @@ FT_BEGIN_HEADER
/* glyph_hints :: Format-specific glyph hints management. */ /* glyph_hints :: Format-specific glyph hints management. */
/* */ /* */
#define FT_GLYPH_OWN_BITMAP 0x1 #define FT_GLYPH_OWN_BITMAP 0x1U
typedef struct FT_Slot_InternalRec_ typedef struct FT_Slot_InternalRec_
{ {
@ -613,12 +614,12 @@ FT_BEGIN_HEADER
#define FT_REQUEST_WIDTH( req ) \ #define FT_REQUEST_WIDTH( req ) \
( (req)->horiResolution \ ( (req)->horiResolution \
? (FT_Pos)( (req)->width * (req)->horiResolution + 36 ) / 72 \ ? ( (req)->width * (FT_Pos)(req)->horiResolution + 36 ) / 72 \
: (req)->width ) : (req)->width )
#define FT_REQUEST_HEIGHT( req ) \ #define FT_REQUEST_HEIGHT( req ) \
( (req)->vertResolution \ ( (req)->vertResolution \
? (FT_Pos)( (req)->height * (req)->vertResolution + 36 ) / 72 \ ? ( (req)->height * (FT_Pos)(req)->vertResolution + 36 ) / 72 \
: (req)->height ) : (req)->height )
@ -740,9 +741,8 @@ FT_BEGIN_HEADER
/* faces_list :: The list of faces currently opened by this */ /* faces_list :: The list of faces currently opened by this */
/* driver. */ /* driver. */
/* */ /* */
/* glyph_loader :: The glyph loader for all faces managed by this */ /* glyph_loader :: Unused. Used to be glyph loader for all faces */
/* driver. This object isn't defined for unscalable */ /* managed by this driver. */
/* formats. */
/* */ /* */
typedef struct FT_DriverRec_ typedef struct FT_DriverRec_
{ {

View File

@ -4,7 +4,7 @@
/* */ /* */
/* The FreeType position independent code services (declaration). */ /* The FreeType position independent code services (declaration). */
/* */ /* */
/* Copyright 2009, 2012 by */ /* Copyright 2009-2015 by */
/* Oran Agra and Mickey Gabel. */ /* Oran Agra and Mickey Gabel. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Embedded resource forks accessor (specification). */ /* Embedded resource forks accessor (specification). */
/* */ /* */
/* Copyright 2004, 2006, 2007, 2012, 2013 by */ /* Copyright 2004-2015 by */
/* Masatake YAMATO and Redhat K.K. */ /* Masatake YAMATO and Redhat K.K. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -44,7 +44,7 @@ FT_BEGIN_HEADER
typedef struct FT_RFork_Ref_ typedef struct FT_RFork_Ref_
{ {
FT_UShort res_id; FT_UShort res_id;
FT_ULong offset; FT_Long offset;
} FT_RFork_Ref; } FT_RFork_Ref;
@ -83,7 +83,7 @@ FT_BEGIN_HEADER
/* this array is a storage in non-PIC mode, so ; is needed in END */ /* this array is a storage in non-PIC mode, so ; is needed in END */
#define CONST_FT_RFORK_RULE_ARRAY_BEGIN( name, type ) \ #define CONST_FT_RFORK_RULE_ARRAY_BEGIN( name, type ) \
const type name[] = { static const type name[] = {
#define CONST_FT_RFORK_RULE_ARRAY_ENTRY( func_suffix, type_suffix ) \ #define CONST_FT_RFORK_RULE_ARRAY_ENTRY( func_suffix, type_suffix ) \
{ raccess_guess_ ## func_suffix, \ { raccess_guess_ ## func_suffix, \
FT_RFork_Rule_ ## type_suffix }, FT_RFork_Rule_ ## type_suffix },

View File

@ -4,7 +4,7 @@
/* */ /* */
/* The FreeType services (specification only). */ /* The FreeType services (specification only). */
/* */ /* */
/* Copyright 2003-2007, 2009, 2012, 2013 by */ /* Copyright 2003-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -734,24 +734,24 @@ FT_BEGIN_HEADER
* The header files containing the services. * The header files containing the services.
*/ */
#define FT_SERVICE_BDF_H <internal/services/svbdf.h> #define FT_SERVICE_BDF_H <freetype/internal/services/svbdf.h>
#define FT_SERVICE_CID_H <internal/services/svcid.h> #define FT_SERVICE_CID_H <freetype/internal/services/svcid.h>
#define FT_SERVICE_GLYPH_DICT_H <internal/services/svgldict.h> #define FT_SERVICE_GLYPH_DICT_H <freetype/internal/services/svgldict.h>
#define FT_SERVICE_GX_VALIDATE_H <internal/services/svgxval.h> #define FT_SERVICE_GX_VALIDATE_H <freetype/internal/services/svgxval.h>
#define FT_SERVICE_KERNING_H <internal/services/svkern.h> #define FT_SERVICE_KERNING_H <freetype/internal/services/svkern.h>
#define FT_SERVICE_MULTIPLE_MASTERS_H <internal/services/svmm.h> #define FT_SERVICE_MULTIPLE_MASTERS_H <freetype/internal/services/svmm.h>
#define FT_SERVICE_OPENTYPE_VALIDATE_H <internal/services/svotval.h> #define FT_SERVICE_OPENTYPE_VALIDATE_H <freetype/internal/services/svotval.h>
#define FT_SERVICE_PFR_H <internal/services/svpfr.h> #define FT_SERVICE_PFR_H <freetype/internal/services/svpfr.h>
#define FT_SERVICE_POSTSCRIPT_CMAPS_H <internal/services/svpscmap.h> #define FT_SERVICE_POSTSCRIPT_CMAPS_H <freetype/internal/services/svpscmap.h>
#define FT_SERVICE_POSTSCRIPT_INFO_H <internal/services/svpsinfo.h> #define FT_SERVICE_POSTSCRIPT_INFO_H <freetype/internal/services/svpsinfo.h>
#define FT_SERVICE_POSTSCRIPT_NAME_H <internal/services/svpostnm.h> #define FT_SERVICE_POSTSCRIPT_NAME_H <freetype/internal/services/svpostnm.h>
#define FT_SERVICE_PROPERTIES_H <internal/services/svprop.h> #define FT_SERVICE_PROPERTIES_H <freetype/internal/services/svprop.h>
#define FT_SERVICE_SFNT_H <internal/services/svsfnt.h> #define FT_SERVICE_SFNT_H <freetype/internal/services/svsfnt.h>
#define FT_SERVICE_TRUETYPE_ENGINE_H <internal/services/svtteng.h> #define FT_SERVICE_TRUETYPE_ENGINE_H <freetype/internal/services/svtteng.h>
#define FT_SERVICE_TT_CMAP_H <internal/services/svttcmap.h> #define FT_SERVICE_TT_CMAP_H <freetype/internal/services/svttcmap.h>
#define FT_SERVICE_WINFNT_H <internal/services/svwinfnt.h> #define FT_SERVICE_WINFNT_H <freetype/internal/services/svwinfnt.h>
#define FT_SERVICE_XFREE86_NAME_H <internal/services/svxf86nm.h> #define FT_SERVICE_FONT_FORMAT_H <freetype/internal/services/svfntfmt.h>
#define FT_SERVICE_TRUETYPE_GLYF_H <internal/services/svttglyf.h> #define FT_SERVICE_TRUETYPE_GLYF_H <freetype/internal/services/svttglyf.h>
/* */ /* */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Stream handling (specification). */ /* Stream handling (specification). */
/* */ /* */
/* Copyright 1996-2002, 2004-2006, 2011, 2013 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -361,7 +361,7 @@ FT_BEGIN_HEADER
FT_Long distance ); FT_Long distance );
/* return current stream position */ /* return current stream position */
FT_BASE( FT_Long ) FT_BASE( FT_ULong )
FT_Stream_Pos( FT_Stream stream ); FT_Stream_Pos( FT_Stream stream );
/* read bytes from a stream into a user-allocated buffer, returns an */ /* read bytes from a stream into a user-allocated buffer, returns an */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Tracing handling (specification only). */ /* Tracing handling (specification only). */
/* */ /* */
/* Copyright 2002, 2004-2007, 2009, 2011-2014 by */ /* Copyright 2002-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType validation support (specification). */ /* FreeType validation support (specification). */
/* */ /* */
/* Copyright 2004, 2013, 2014 by */ /* Copyright 2004-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Internal header files (specification only). */ /* Internal header files (specification only). */
/* */ /* */
/* Copyright 1996-2004, 2013 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -24,28 +24,28 @@
/*************************************************************************/ /*************************************************************************/
#define FT_INTERNAL_OBJECTS_H <internal/ftobjs.h> #define FT_INTERNAL_OBJECTS_H <freetype/internal/ftobjs.h>
#define FT_INTERNAL_PIC_H <internal/ftpic.h> #define FT_INTERNAL_PIC_H <freetype/internal/ftpic.h>
#define FT_INTERNAL_STREAM_H <internal/ftstream.h> #define FT_INTERNAL_STREAM_H <freetype/internal/ftstream.h>
#define FT_INTERNAL_MEMORY_H <internal/ftmemory.h> #define FT_INTERNAL_MEMORY_H <freetype/internal/ftmemory.h>
#define FT_INTERNAL_DEBUG_H <internal/ftdebug.h> #define FT_INTERNAL_DEBUG_H <freetype/internal/ftdebug.h>
#define FT_INTERNAL_CALC_H <internal/ftcalc.h> #define FT_INTERNAL_CALC_H <freetype/internal/ftcalc.h>
#define FT_INTERNAL_DRIVER_H <internal/ftdriver.h> #define FT_INTERNAL_DRIVER_H <freetype/internal/ftdriver.h>
#define FT_INTERNAL_TRACE_H <internal/fttrace.h> #define FT_INTERNAL_TRACE_H <freetype/internal/fttrace.h>
#define FT_INTERNAL_GLYPH_LOADER_H <internal/ftgloadr.h> #define FT_INTERNAL_GLYPH_LOADER_H <freetype/internal/ftgloadr.h>
#define FT_INTERNAL_SFNT_H <internal/sfnt.h> #define FT_INTERNAL_SFNT_H <freetype/internal/sfnt.h>
#define FT_INTERNAL_SERVICE_H <internal/ftserv.h> #define FT_INTERNAL_SERVICE_H <freetype/internal/ftserv.h>
#define FT_INTERNAL_RFORK_H <internal/ftrfork.h> #define FT_INTERNAL_RFORK_H <freetype/internal/ftrfork.h>
#define FT_INTERNAL_VALIDATE_H <internal/ftvalid.h> #define FT_INTERNAL_VALIDATE_H <freetype/internal/ftvalid.h>
#define FT_INTERNAL_TRUETYPE_TYPES_H <internal/tttypes.h> #define FT_INTERNAL_TRUETYPE_TYPES_H <freetype/internal/tttypes.h>
#define FT_INTERNAL_TYPE1_TYPES_H <internal/t1types.h> #define FT_INTERNAL_TYPE1_TYPES_H <freetype/internal/t1types.h>
#define FT_INTERNAL_POSTSCRIPT_AUX_H <internal/psaux.h> #define FT_INTERNAL_POSTSCRIPT_AUX_H <freetype/internal/psaux.h>
#define FT_INTERNAL_POSTSCRIPT_HINTS_H <internal/pshints.h> #define FT_INTERNAL_POSTSCRIPT_HINTS_H <freetype/internal/pshints.h>
#define FT_INTERNAL_POSTSCRIPT_GLOBALS_H <internal/psglobal.h> #define FT_INTERNAL_POSTSCRIPT_GLOBALS_H <freetype/internal/psglobal.h>
#define FT_INTERNAL_AUTOHINT_H <internal/autohint.h> #define FT_INTERNAL_AUTOHINT_H <freetype/internal/autohint.h>
#if defined( _MSC_VER ) /* Visual C++ (and Intel C++) */ #if defined( _MSC_VER ) /* Visual C++ (and Intel C++) */

View File

@ -5,7 +5,7 @@
/* Auxiliary functions and data structures related to PostScript fonts */ /* Auxiliary functions and data structures related to PostScript fonts */
/* (specification). */ /* (specification). */
/* */ /* */
/* Copyright 1996-2004, 2006, 2008, 2009, 2012 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -71,10 +71,10 @@ FT_BEGIN_HEADER
(*done)( PS_Table table ); (*done)( PS_Table table );
FT_Error FT_Error
(*add)( PS_Table table, (*add)( PS_Table table,
FT_Int idx, FT_Int idx,
void* object, void* object,
FT_PtrDist length ); FT_UInt length );
void void
(*release)( PS_Table table ); (*release)( PS_Table table );
@ -122,12 +122,12 @@ FT_BEGIN_HEADER
FT_Byte* block; /* current memory block */ FT_Byte* block; /* current memory block */
FT_Offset cursor; /* current cursor in memory block */ FT_Offset cursor; /* current cursor in memory block */
FT_Offset capacity; /* current size of memory block */ FT_Offset capacity; /* current size of memory block */
FT_Long init; FT_ULong init;
FT_Int max_elems; FT_Int max_elems;
FT_Int num_elems; FT_Int num_elems;
FT_Byte** elements; /* addresses of table elements */ FT_Byte** elements; /* addresses of table elements */
FT_PtrDist* lengths; /* lengths of table elements */ FT_UInt* lengths; /* lengths of table elements */
FT_Memory memory; FT_Memory memory;
PS_Table_FuncsRec funcs; PS_Table_FuncsRec funcs;
@ -365,7 +365,7 @@ FT_BEGIN_HEADER
(*to_bytes)( PS_Parser parser, (*to_bytes)( PS_Parser parser,
FT_Byte* bytes, FT_Byte* bytes,
FT_Offset max_bytes, FT_Offset max_bytes,
FT_Long* pnum_bytes, FT_ULong* pnum_bytes,
FT_Bool delimiters ); FT_Bool delimiters );
FT_Int FT_Int
@ -675,9 +675,9 @@ FT_BEGIN_HEADER
FT_Byte** glyph_names; FT_Byte** glyph_names;
FT_Int lenIV; /* internal for sub routine calls */ FT_Int lenIV; /* internal for sub routine calls */
FT_UInt num_subrs; FT_Int num_subrs;
FT_Byte** subrs; FT_Byte** subrs;
FT_PtrDist* subrs_len; /* array of subrs length (optional) */ FT_UInt* subrs_len; /* array of subrs length (optional) */
FT_Matrix font_matrix; FT_Matrix font_matrix;
FT_Vector font_offset; FT_Vector font_offset;

View File

@ -6,7 +6,7 @@
/* recorders (specification only). These are used to support native */ /* recorders (specification only). These are used to support native */
/* T1/T2 hints in the `type1', `cid', and `cff' font drivers. */ /* T1/T2 hints in the `type1', `cid', and `cff' font drivers. */
/* */ /* */
/* Copyright 2001-2003, 2005-2007, 2009, 2012, 2014 by */ /* Copyright 2001-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -465,7 +465,7 @@ FT_BEGIN_HEADER
typedef void typedef void
(*T2_Hints_StemsFunc)( T2_Hints hints, (*T2_Hints_StemsFunc)( T2_Hints hints,
FT_UInt dimension, FT_UInt dimension,
FT_UInt count, FT_Int count,
FT_Fixed* coordinates ); FT_Fixed* coordinates );

View File

@ -4,7 +4,7 @@
/* */ /* */
/* The FreeType BDF services (specification). */ /* The FreeType BDF services (specification). */
/* */ /* */
/* Copyright 2003, 2009, 2012 by */ /* Copyright 2003-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,8 @@
/* */ /* */
/* The FreeType CID font services (specification). */ /* The FreeType CID font services (specification). */
/* */ /* */
/* Copyright 2007, 2009, 2012 by Derek Clegg, Michael Toftdal. */ /* Copyright 2007-2015 by */
/* Derek Clegg and Michael Toftdal. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */ /* modified, and distributed under the terms of the FreeType project */

View File

@ -1,10 +1,10 @@
/***************************************************************************/ /***************************************************************************/
/* */ /* */
/* svxf86nm.h */ /* svfntfmt.h */
/* */ /* */
/* The FreeType XFree86 services (specification only). */ /* The FreeType font format service (specification only). */
/* */ /* */
/* Copyright 2003 by */ /* Copyright 2003-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -16,8 +16,8 @@
/***************************************************************************/ /***************************************************************************/
#ifndef __SVXF86NM_H__ #ifndef __SVFNTFMT_H__
#define __SVXF86NM_H__ #define __SVFNTFMT_H__
#include FT_INTERNAL_SERVICE_H #include FT_INTERNAL_SERVICE_H
@ -31,17 +31,17 @@ FT_BEGIN_HEADER
* is a simple constant string pointer. * is a simple constant string pointer.
*/ */
#define FT_SERVICE_ID_XF86_NAME "xf86-driver-name" #define FT_SERVICE_ID_FONT_FORMAT "font-format"
#define FT_XF86_FORMAT_TRUETYPE "TrueType" #define FT_FONT_FORMAT_TRUETYPE "TrueType"
#define FT_XF86_FORMAT_TYPE_1 "Type 1" #define FT_FONT_FORMAT_TYPE_1 "Type 1"
#define FT_XF86_FORMAT_BDF "BDF" #define FT_FONT_FORMAT_BDF "BDF"
#define FT_XF86_FORMAT_PCF "PCF" #define FT_FONT_FORMAT_PCF "PCF"
#define FT_XF86_FORMAT_TYPE_42 "Type 42" #define FT_FONT_FORMAT_TYPE_42 "Type 42"
#define FT_XF86_FORMAT_CID "CID Type 1" #define FT_FONT_FORMAT_CID "CID Type 1"
#define FT_XF86_FORMAT_CFF "CFF" #define FT_FONT_FORMAT_CFF "CFF"
#define FT_XF86_FORMAT_PFR "PFR" #define FT_FONT_FORMAT_PFR "PFR"
#define FT_XF86_FORMAT_WINFNT "Windows FNT" #define FT_FONT_FORMAT_WINFNT "Windows FNT"
/* */ /* */
@ -49,7 +49,7 @@ FT_BEGIN_HEADER
FT_END_HEADER FT_END_HEADER
#endif /* __SVXF86NM_H__ */ #endif /* __SVFNTFMT_H__ */
/* END */ /* END */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* The FreeType glyph dictionary services (specification). */ /* The FreeType glyph dictionary services (specification). */
/* */ /* */
/* Copyright 2003, 2009, 2012 by */ /* Copyright 2003-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType API for validating TrueTypeGX/AAT tables (specification). */ /* FreeType API for validating TrueTypeGX/AAT tables (specification). */
/* */ /* */
/* Copyright 2004, 2005 by */ /* Copyright 2004-2015 by */
/* Masatake YAMATO, Red Hat K.K., */ /* Masatake YAMATO, Red Hat K.K., */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* The FreeType Kerning service (specification). */ /* The FreeType Kerning service (specification). */
/* */ /* */
/* Copyright 2006 by */ /* Copyright 2006-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* The FreeType Multiple Masters and GX var services (specification). */ /* The FreeType Multiple Masters and GX var services (specification). */
/* */ /* */
/* Copyright 2003, 2004, 2009, 2012 by */ /* Copyright 2003-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* The FreeType OpenType validation service (specification). */ /* The FreeType OpenType validation service (specification). */
/* */ /* */
/* Copyright 2004, 2006 by */ /* Copyright 2004-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Internal PFR service functions (specification). */ /* Internal PFR service functions (specification). */
/* */ /* */
/* Copyright 2003, 2006 by */ /* Copyright 2003-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* The FreeType PostScript name services (specification). */ /* The FreeType PostScript name services (specification). */
/* */ /* */
/* Copyright 2003, 2007, 2009, 2012 by */ /* Copyright 2003-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* The FreeType property service (specification). */ /* The FreeType property service (specification). */
/* */ /* */
/* Copyright 2012 by */ /* Copyright 2012-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* The FreeType PostScript charmap service (specification). */ /* The FreeType PostScript charmap service (specification). */
/* */ /* */
/* Copyright 2003, 2006, 2009, 2012 by */ /* Copyright 2003-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* The FreeType PostScript info service (specification). */ /* The FreeType PostScript info service (specification). */
/* */ /* */
/* Copyright 2003, 2004, 2009, 2011, 2012 by */ /* Copyright 2003-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* The FreeType SFNT table loading service (specification). */ /* The FreeType SFNT table loading service (specification). */
/* */ /* */
/* Copyright 2003, 2004, 2009, 2012 by */ /* Copyright 2003-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,10 +4,8 @@
/* */ /* */
/* The FreeType TrueType/sfnt cmap extra information service. */ /* The FreeType TrueType/sfnt cmap extra information service. */
/* */ /* */
/* Copyright 2003 by */ /* Copyright 2003-2015 by */
/* Masatake YAMATO, Redhat K.K. */ /* Masatake YAMATO, Redhat K.K., */
/* */
/* Copyright 2003, 2008, 2009, 2012, 2013 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -50,11 +48,12 @@ FT_BEGIN_HEADER
/* `ttnameid.h'. */ /* `ttnameid.h'. */
/* */ /* */
/* format :: */ /* format :: */
/* The cmap format. OpenType 1.5 defines the formats 0 (byte */ /* The cmap format. OpenType 1.6 defines the formats 0 (byte */
/* encoding table), 2~(high-byte mapping through table), 4~(segment */ /* encoding table), 2~(high-byte mapping through table), 4~(segment */
/* mapping to delta values), 6~(trimmed table mapping), 8~(mixed */ /* mapping to delta values), 6~(trimmed table mapping), 8~(mixed */
/* 16-bit and 32-bit coverage), 10~(trimmed array), 12~(segmented */ /* 16-bit and 32-bit coverage), 10~(trimmed array), 12~(segmented */
/* coverage), and 14 (Unicode Variation Sequences). */ /* coverage), 13~(last resort font), and 14 (Unicode Variation */
/* Sequences). */
/* */ /* */
typedef struct TT_CMapInfo_ typedef struct TT_CMapInfo_
{ {

View File

@ -4,7 +4,7 @@
/* */ /* */
/* The FreeType TrueType engine query service (specification). */ /* The FreeType TrueType engine query service (specification). */
/* */ /* */
/* Copyright 2006 by */ /* Copyright 2006-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,8 @@
/* */ /* */
/* The FreeType TrueType glyph service. */ /* The FreeType TrueType glyph service. */
/* */ /* */
/* Copyright 2007, 2009, 2012 by David Turner. */ /* Copyright 2007-2015 by */
/* David Turner. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */ /* modified, and distributed under the terms of the FreeType project */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* The FreeType Windows FNT/FONT service (specification). */ /* The FreeType Windows FNT/FONT service (specification). */
/* */ /* */
/* Copyright 2003 by */ /* Copyright 2003-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* High-level `sfnt' driver interface (specification). */ /* High-level `sfnt' driver interface (specification). */
/* */ /* */
/* Copyright 1996-2006, 2009, 2012-2014 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -44,7 +44,9 @@ FT_BEGIN_HEADER
/* face :: A handle to the target face object. */ /* face :: A handle to the target face object. */
/* */ /* */
/* face_index :: The index of the TrueType font, if we are opening a */ /* face_index :: The index of the TrueType font, if we are opening a */
/* collection. */ /* collection, in bits 0-15. The numbered instance */
/* index~+~1 of a GX (sub)font, if applicable, in bits */
/* 16-30. */
/* */ /* */
/* num_params :: The number of additional parameters. */ /* num_params :: The number of additional parameters. */
/* */ /* */
@ -87,7 +89,9 @@ FT_BEGIN_HEADER
/* face :: A handle to the target face object. */ /* face :: A handle to the target face object. */
/* */ /* */
/* face_index :: The index of the TrueType font, if we are opening a */ /* face_index :: The index of the TrueType font, if we are opening a */
/* collection. */ /* collection, in bits 0-15. The numbered instance */
/* index~+~1 of a GX (sub)font, if applicable, in bits */
/* 16-30. */
/* */ /* */
/* num_params :: The number of additional parameters. */ /* num_params :: The number of additional parameters. */
/* */ /* */
@ -424,6 +428,33 @@ FT_BEGIN_HEADER
FT_UShort* aadvance ); FT_UShort* aadvance );
/*************************************************************************/
/* */
/* <FuncType> */
/* TT_Get_Name_Func */
/* */
/* <Description> */
/* From the `name' table, return a given ENGLISH name record in */
/* ASCII. */
/* */
/* <Input> */
/* face :: A handle to the source face object. */
/* */
/* nameid :: The name id of the name record to return. */
/* */
/* <InOut> */
/* name :: The address of an allocated string pointer. NULL if */
/* no name is present. */
/* */
/* <Return> */
/* FreeType error code. 0 means success. */
/* */
typedef FT_Error
(*TT_Get_Name_Func)( TT_Face face,
FT_UShort nameid,
FT_String** name );
/*************************************************************************/ /*************************************************************************/
/* */ /* */
/* <FuncType> */ /* <FuncType> */
@ -556,6 +587,8 @@ FT_BEGIN_HEADER
TT_Get_Metrics_Func get_metrics; TT_Get_Metrics_Func get_metrics;
TT_Get_Name_Func get_name;
} SFNT_Interface; } SFNT_Interface;
@ -594,7 +627,8 @@ FT_BEGIN_HEADER
free_eblc_, \ free_eblc_, \
set_sbit_strike_, \ set_sbit_strike_, \
load_strike_metrics_, \ load_strike_metrics_, \
get_metrics_ ) \ get_metrics_, \
get_name_ ) \
static const SFNT_Interface class_ = \ static const SFNT_Interface class_ = \
{ \ { \
goto_table_, \ goto_table_, \
@ -626,6 +660,7 @@ FT_BEGIN_HEADER
set_sbit_strike_, \ set_sbit_strike_, \
load_strike_metrics_, \ load_strike_metrics_, \
get_metrics_, \ get_metrics_, \
get_name_, \
}; };
#else /* FT_CONFIG_OPTION_PIC */ #else /* FT_CONFIG_OPTION_PIC */
@ -663,7 +698,8 @@ FT_BEGIN_HEADER
free_eblc_, \ free_eblc_, \
set_sbit_strike_, \ set_sbit_strike_, \
load_strike_metrics_, \ load_strike_metrics_, \
get_metrics_ ) \ get_metrics_, \
get_name_ ) \
void \ void \
FT_Init_Class_ ## class_( FT_Library library, \ FT_Init_Class_ ## class_( FT_Library library, \
SFNT_Interface* clazz ) \ SFNT_Interface* clazz ) \
@ -699,6 +735,7 @@ FT_BEGIN_HEADER
clazz->set_sbit_strike = set_sbit_strike_; \ clazz->set_sbit_strike = set_sbit_strike_; \
clazz->load_strike_metrics = load_strike_metrics_; \ clazz->load_strike_metrics = load_strike_metrics_; \
clazz->get_metrics = get_metrics_; \ clazz->get_metrics = get_metrics_; \
clazz->get_name = get_name_; \
} }
#endif /* FT_CONFIG_OPTION_PIC */ #endif /* FT_CONFIG_OPTION_PIC */

View File

@ -5,7 +5,7 @@
/* Basic Type1/Type2 type definitions and interface (specification */ /* Basic Type1/Type2 type definitions and interface (specification */
/* only). */ /* only). */
/* */ /* */
/* Copyright 1996-2004, 2006, 2008, 2009, 2011, 2013 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -106,12 +106,12 @@ FT_BEGIN_HEADER
FT_Int num_subrs; FT_Int num_subrs;
FT_Byte** subrs; FT_Byte** subrs;
FT_PtrDist* subrs_len; FT_UInt* subrs_len;
FT_Int num_glyphs; FT_Int num_glyphs;
FT_String** glyph_names; /* array of glyph names */ FT_String** glyph_names; /* array of glyph names */
FT_Byte** charstrings; /* array of glyph charstrings */ FT_Byte** charstrings; /* array of glyph charstrings */
FT_PtrDist* charstrings_len; FT_UInt* charstrings_len;
FT_Byte paint_type; FT_Byte paint_type;
FT_Byte font_type; FT_Byte font_type;
@ -127,7 +127,7 @@ FT_BEGIN_HEADER
typedef struct CID_SubrsRec_ typedef struct CID_SubrsRec_
{ {
FT_UInt num_subrs; FT_Int num_subrs;
FT_Byte** code; FT_Byte** code;
} CID_SubrsRec, *CID_Subrs; } CID_SubrsRec, *CID_Subrs;
@ -157,10 +157,10 @@ FT_BEGIN_HEADER
typedef struct AFM_KernPairRec_ typedef struct AFM_KernPairRec_
{ {
FT_Int index1; FT_UInt index1;
FT_Int index2; FT_UInt index2;
FT_Int x; FT_Int x;
FT_Int y; FT_Int y;
} AFM_KernPairRec, *AFM_KernPair; } AFM_KernPairRec, *AFM_KernPair;
@ -171,9 +171,9 @@ FT_BEGIN_HEADER
FT_Fixed Ascender; FT_Fixed Ascender;
FT_Fixed Descender; FT_Fixed Descender;
AFM_TrackKern TrackKerns; /* free if non-NULL */ AFM_TrackKern TrackKerns; /* free if non-NULL */
FT_Int NumTrackKern; FT_UInt NumTrackKern;
AFM_KernPair KernPairs; /* free if non-NULL */ AFM_KernPair KernPairs; /* free if non-NULL */
FT_Int NumKernPair; FT_UInt NumKernPair;
} AFM_FontInfoRec, *AFM_FontInfo; } AFM_FontInfoRec, *AFM_FontInfo;

View File

@ -5,7 +5,7 @@
/* Basic SFNT/TrueType type definitions and interface (specification */ /* Basic SFNT/TrueType type definitions and interface (specification */
/* only). */ /* only). */
/* */ /* */
/* Copyright 1996-2002, 2004-2008, 2012-2013 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -614,8 +614,7 @@ FT_BEGIN_HEADER
/* in use by other platforms (e.g. Newton). */ /* in use by other platforms (e.g. Newton). */
/* For details, please see */ /* For details, please see */
/* */ /* */
/* http://fonts.apple.com/ */ /* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6bloc.html */
/* TTRefMan/RM06/Chap6bloc.html */
/* */ /* */
/* hori :: The line metrics for horizontal layouts. */ /* hori :: The line metrics for horizontal layouts. */
/* */ /* */
@ -635,8 +634,7 @@ FT_BEGIN_HEADER
/* flags :: Is this a vertical or horizontal strike? For */ /* flags :: Is this a vertical or horizontal strike? For */
/* details, please see */ /* details, please see */
/* */ /* */
/* http://fonts.apple.com/ */ /* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6bloc.html */
/* TTRefMan/RM06/Chap6bloc.html */
/* */ /* */
typedef struct TT_SBit_StrikeRec_ typedef struct TT_SBit_StrikeRec_
{ {
@ -1113,7 +1111,7 @@ FT_BEGIN_HEADER
/* This field also contains the associated */ /* This field also contains the associated */
/* vertical metrics table (`vmtx'), if found. */ /* vertical metrics table (`vmtx'), if found. */
/* IMPORTANT: The contents of this field is */ /* IMPORTANT: The contents of this field is */
/* undefined if the `verticalInfo' field is */ /* undefined if the `vertical_info' field is */
/* unset. */ /* unset. */
/* */ /* */
/* num_names :: The number of name records within this */ /* num_names :: The number of name records within this */
@ -1440,7 +1438,7 @@ FT_BEGIN_HEADER
{ {
FT_Memory memory; FT_Memory memory;
FT_UShort max_points; FT_UShort max_points;
FT_UShort max_contours; FT_Short max_contours;
FT_UShort n_points; /* number of points in zone */ FT_UShort n_points; /* number of points in zone */
FT_Short n_contours; /* number of contours */ FT_Short n_contours; /* number of contours */
@ -1459,11 +1457,23 @@ FT_BEGIN_HEADER
/* handle to execution context */ /* handle to execution context */
typedef struct TT_ExecContextRec_* TT_ExecContext; typedef struct TT_ExecContextRec_* TT_ExecContext;
/*************************************************************************/
/* */
/* <Type> */
/* TT_Size */
/* */
/* <Description> */
/* A handle to a TrueType size object. */
/* */
typedef struct TT_SizeRec_* TT_Size;
/* glyph loader structure */ /* glyph loader structure */
typedef struct TT_LoaderRec_ typedef struct TT_LoaderRec_
{ {
FT_Face face; TT_Face face;
FT_Size size; TT_Size size;
FT_GlyphSlot glyph; FT_GlyphSlot glyph;
FT_GlyphLoader gloader; FT_GlyphLoader gloader;

View File

@ -5,7 +5,7 @@
/* Basic Type 1/Type 2 tables definitions and interface (specification */ /* Basic Type 1/Type 2 tables definitions and interface (specification */
/* only). */ /* only). */
/* */ /* */
/* Copyright 1996-2004, 2006, 2008, 2009, 2011, 2014 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -492,8 +492,9 @@ FT_BEGIN_HEADER
* FreeType error code. 0~means success. * FreeType error code. 0~means success.
* *
* @note: * @note:
* The string pointers within the font info structure are owned by * String pointers within the @PS_FontInfoRec structure are owned by
* the face and don't need to be freed by the caller. * the face and don't need to be freed by the caller. Missing entries
* in the font's FontInfo dictionary are represented by NULL pointers.
* *
* 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. * return the `FT_Err_Invalid_Argument' error code.

View File

@ -4,7 +4,7 @@
/* */ /* */
/* TrueType name ID definitions (specification only). */ /* TrueType name ID definitions (specification only). */
/* */ /* */
/* Copyright 1996-2004, 2006-2008, 2012-2014 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -321,7 +321,7 @@ FT_BEGIN_HEADER
/* */ /* */
/* The canonical source for the Apple assigned Language ID's is at */ /* The canonical source for the Apple assigned Language ID's is at */
/* */ /* */
/* https://developer.apple.com/fonts/TTRefMan/RM06/Chap6name.html */ /* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6name.html */
/* */ /* */
#define TT_MAC_LANGID_ENGLISH 0 #define TT_MAC_LANGID_ENGLISH 0
#define TT_MAC_LANGID_FRENCH 1 #define TT_MAC_LANGID_FRENCH 1

View File

@ -5,7 +5,7 @@
/* Basic SFNT/TrueType tables definitions and interface */ /* Basic SFNT/TrueType tables definitions and interface */
/* (specification only). */ /* (specification only). */
/* */ /* */
/* Copyright 1996-2005, 2008-2014 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -371,7 +371,7 @@ FT_BEGIN_HEADER
FT_Short xAvgCharWidth; FT_Short xAvgCharWidth;
FT_UShort usWeightClass; FT_UShort usWeightClass;
FT_UShort usWidthClass; FT_UShort usWidthClass;
FT_Short fsType; FT_UShort fsType;
FT_Short ySubscriptXSize; FT_Short ySubscriptXSize;
FT_Short ySubscriptYSize; FT_Short ySubscriptYSize;
FT_Short ySubscriptXOffset; FT_Short ySubscriptXOffset;

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Tags for TrueType and OpenType tables (specification only). */ /* Tags for TrueType and OpenType tables (specification only). */
/* */ /* */
/* Copyright 1996-2001, 2004, 2005, 2007, 2008, 2013 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Definitions for the unpatented TrueType hinting system */ /* Definitions for the unpatented TrueType hinting system */
/* */ /* */
/* Copyright 2003, 2006 by */ /* Copyright 2003-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* Written by Graham Asher <graham.asher@btinternet.com> */ /* Written by Graham Asher <graham.asher@btinternet.com> */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType 2 build and setup macros. */ /* FreeType 2 build and setup macros. */
/* */ /* */
/* Copyright 1996-2001, 2006, 2013 by */ /* Copyright 1996-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -34,7 +34,7 @@
#ifndef __FT2BUILD_H__ #ifndef __FT2BUILD_H__
#define __FT2BUILD_H__ #define __FT2BUILD_H__
#include <config/ftheader.h> #include <freetype/config/ftheader.h>
#endif /* __FT2BUILD_H__ */ #endif /* __FT2BUILD_H__ */

View File

@ -1,170 +0,0 @@
/***************************************************************************/
/* */
/* ftttdrv.h */
/* */
/* FreeType API for controlling the TrueType driver */
/* (specification only). */
/* */
/* Copyright 2013 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
#ifndef __FTTTDRV_H__
#define __FTTTDRV_H__
#include <ft2build.h>
#include FT_FREETYPE_H
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
#error "Please fix the directory search order for header files"
#error "so that freetype.h of FreeType 2 is found first."
#endif
FT_BEGIN_HEADER
/**************************************************************************
*
* @section:
* tt_driver
*
* @title:
* The TrueType driver
*
* @abstract:
* Controlling the TrueType driver module.
*
* @description:
* While FreeType's TrueType driver doesn't expose API functions by
* itself, it is possible to control its behaviour with @FT_Property_Set
* and @FT_Property_Get. The following lists the available properties
* together with the necessary macros and structures.
*
* The TrueType driver's module name is `truetype'.
*
*/
/**************************************************************************
*
* @property:
* interpreter-version
*
* @description:
* Currently, two versions are available, representing the bytecode
* interpreter with and without subpixel hinting support,
* respectively. The default is subpixel support if
* TT_CONFIG_OPTION_SUBPIXEL_HINTING is defined, and no subpixel
* support otherwise (since it isn't available then).
*
* If subpixel hinting is on, many TrueType bytecode instructions
* behave differently compared to B/W or grayscale rendering. The
* main idea is to render at a much increased horizontal resolution,
* then sampling down the created output to subpixel precision.
* However, many older fonts are not suited to this and must be
* specially taken care of by applying (hardcoded) font-specific
* tweaks.
*
* Details on subpixel hinting and some of the necessary tweaks can be
* found in Greg Hitchcock's whitepaper at
* `http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx'.
*
* The following example code demonstrates how to activate subpixel
* hinting (omitting the error handling).
*
* {
* FT_Library library;
* FT_Face face;
* FT_UInt interpreter_version = TT_INTERPRETER_VERSION_38;
*
*
* FT_Init_FreeType( &library );
*
* FT_Property_Set( library, "truetype",
* "interpreter-version",
* &interpreter_version );
* }
*
* @note:
* This property can be used with @FT_Property_Get also.
*
*/
/**************************************************************************
*
* @enum:
* TT_INTERPRETER_VERSION_XXX
*
* @description:
* A list of constants used for the @interpreter-version property to
* select the hinting engine for Truetype fonts.
*
* The numeric value in the constant names represents the version
* number as returned by the `GETINFO' bytecode instruction.
*
* @values:
* TT_INTERPRETER_VERSION_35 ::
* Version~35 corresponds to MS rasterizer v.1.7 as used e.g. in
* Windows~98; only grayscale and B/W rasterizing is supported.
*
* TT_INTERPRETER_VERSION_38 ::
* Version~38 corresponds to MS rasterizer v.1.9; it is roughly
* equivalent to the hinting provided by DirectWrite ClearType (as
* can be found, for example, in the Internet Explorer~9 running on
* Windows~7).
*
* @note:
* This property controls the behaviour of the bytecode interpreter
* and thus how outlines get hinted. It does *not* control how glyph
* get rasterized! In particular, it does not control subpixel color
* filtering.
*
* If FreeType has not been compiled with configuration option
* FT_CONFIG_OPTION_SUBPIXEL_HINTING, selecting version~38 causes an
* `FT_Err_Unimplemented_Feature' error.
*
* Depending on the graphics framework, Microsoft uses different
* bytecode engines. As a consequence, the version numbers returned by
* a call to the `GETINFO[1]' bytecode instruction are more convoluted
* than desired.
*
* {
* framework Windows version result of GETINFO[1]
* ----------------------------------------------------
* GDI before XP 35
* GDI XP and later 37
* GDI+ old before Vista 37
* GDI+ old Vista, 7 38
* GDI+ after 7 40
* DWrite before 8 39
* DWrite 8 and later 40
* }
*
* Since FreeType doesn't provide all capabilities of DWrite ClearType,
* using version~38 seems justified.
*
*/
#define TT_INTERPRETER_VERSION_35 35
#define TT_INTERPRETER_VERSION_38 38
/* */
FT_END_HEADER
#endif /* __FTTTDRV_H__ */
/* END */

View File

@ -1,6 +1,6 @@
# FreeType 2 src Jamfile # FreeType 2 src Jamfile
# #
# Copyright 2001, 2002, 2013 by # Copyright 2001-2015 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -11,12 +11,6 @@
SubDir FT2_TOP $(FT2_SRC_DIR) ; SubDir FT2_TOP $(FT2_SRC_DIR) ;
# The file <internal/internal.h> is used to define macros that are
# later used in #include statements. It needs to be parsed in order to
# record these definitions.
#
HDRMACRO [ FT2_SubDir $(FT2_INCLUDE_DIR) internal internal.h ] ;
for xx in $(FT2_COMPONENTS) for xx in $(FT2_COMPONENTS)
{ {
SubInclude FT2_TOP $(FT2_SRC_DIR) $(xx) ; SubInclude FT2_TOP $(FT2_SRC_DIR) $(xx) ;

View File

@ -1,6 +1,6 @@
# FreeType 2 src/autofit Jamfile # FreeType 2 src/autofit Jamfile
# #
# Copyright 2003, 2004, 2005, 2006, 2007, 2009 by # Copyright 2003-2015 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,
@ -17,11 +17,25 @@ SubDir FT2_TOP src autofit ;
# define FT2_AUTOFIT2 to enable experimental latin hinter replacement # define FT2_AUTOFIT2 to enable experimental latin hinter replacement
if $(FT2_AUTOFIT2) if $(FT2_AUTOFIT2)
{ {
DEFINES += FT_OPTION_AUTOFIT2 ; CCFLAGS += FT_OPTION_AUTOFIT2 ;
} }
if $(FT2_MULTI) if $(FT2_MULTI)
{ {
_sources = afangles afglobal afhints aflatin afcjk afindic afloader afmodule afdummy afwarp afpic ; _sources = afangles
afblue
afcjk
afdummy
afglobal
afhints
afindic
aflatin
afloader
afmodule
afpic
afranges
afwarp
hbshim
;
if $(FT2_AUTOFIT2) if $(FT2_AUTOFIT2)
{ {

View File

@ -5,7 +5,7 @@
/* Routines used to compute vector angles with limited accuracy */ /* Routines used to compute vector angles with limited accuracy */
/* and very high speed. It also contains sorting routines (body). */ /* and very high speed. It also contains sorting routines (body). */
/* */ /* */
/* Copyright 2003-2006, 2011-2012 by */ /* Copyright 2003-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -259,7 +259,7 @@
sum += table[j].org; sum += table[j].org;
table[j].org = 0; table[j].org = 0;
} }
table[cur_idx].org = sum / j; table[cur_idx].org = sum / (FT_Pos)j;
if ( i < *count - 1 ) if ( i < *count - 1 )
{ {

View File

@ -7,7 +7,7 @@
/* */ /* */
/* Auto-fitter data for blue strings (body). */ /* Auto-fitter data for blue strings (body). */
/* */ /* */
/* Copyright 2013 by */ /* Copyright 2013-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -26,6 +26,12 @@
af_blue_strings[] = af_blue_strings[] =
{ {
/* */ /* */
'\xD8', '\xA7', '\xD8', '\xA5', '\xD9', '\x84', '\xD9', '\x83', '\xD8', '\xB7', '\xD8', '\xB8', /* ا إ ل ك ط ظ */
'\0',
'\xD8', '\xAA', '\xD8', '\xAB', '\xD8', '\xB7', '\xD8', '\xB8', '\xD9', '\x83', /* ت ث ط ظ ك */
'\0',
'\xD9', '\x80', /* ـ */
'\0',
'\xD0', '\x91', '\xD0', '\x92', '\xD0', '\x95', '\xD0', '\x9F', '\xD0', '\x97', '\xD0', '\x9E', '\xD0', '\xA1', '\xD0', '\xAD', /* БВЕПЗОСЭ */ '\xD0', '\x91', '\xD0', '\x92', '\xD0', '\x95', '\xD0', '\x9F', '\xD0', '\x97', '\xD0', '\x9E', '\xD0', '\xA1', '\xD0', '\xAD', /* БВЕПЗОСЭ */
'\0', '\0',
'\xD0', '\x91', '\xD0', '\x92', '\xD0', '\x95', '\xD0', '\xA8', '\xD0', '\x97', '\xD0', '\x9E', '\xD0', '\xA1', '\xD0', '\xAD', /* БВЕШЗОСЭ */ '\xD0', '\x91', '\xD0', '\x92', '\xD0', '\x95', '\xD0', '\xA8', '\xD0', '\x97', '\xD0', '\x9E', '\xD0', '\xA1', '\xD0', '\xAD', /* БВЕШЗОСЭ */
@ -58,6 +64,16 @@
'\0', '\0',
'\xD7', '\xA7', '\xD7', '\x9A', '\xD7', '\x9F', '\xD7', '\xA3', '\xD7', '\xA5', /* קךןףץ */ '\xD7', '\xA7', '\xD7', '\x9A', '\xD7', '\x9F', '\xD7', '\xA3', '\xD7', '\xA5', /* קךןףץ */
'\0', '\0',
'\xE0', '\xBA', '\xB2', '\xE0', '\xBA', '\x94', '\xE0', '\xBA', '\xAD', '\xE0', '\xBA', '\xA1', '\xE0', '\xBA', '\xA5', '\xE0', '\xBA', '\xA7', '\xE0', '\xBA', '\xA3', '\xE0', '\xBA', '\x87', /* າ ດ ອ ມ ລ ວ ຣ ງ */
'\0',
'\xE0', '\xBA', '\xB2', '\xE0', '\xBA', '\xAD', '\xE0', '\xBA', '\x9A', '\xE0', '\xBA', '\x8D', '\xE0', '\xBA', '\xA3', '\xE0', '\xBA', '\xAE', '\xE0', '\xBA', '\xA7', '\xE0', '\xBA', '\xA2', /* າ ອ ບ ຍ ຣ ຮ ວ ຢ */
'\0',
'\xE0', '\xBA', '\x9B', '\xE0', '\xBA', '\xA2', '\xE0', '\xBA', '\x9F', '\xE0', '\xBA', '\x9D', /* ປ ຢ ຟ ຝ */
'\0',
'\xE0', '\xBB', '\x82', '\xE0', '\xBB', '\x84', '\xE0', '\xBB', '\x83', /* ໂ ໄ ໃ */
'\0',
'\xE0', '\xBA', '\x87', '\xE0', '\xBA', '\x8A', '\xE0', '\xBA', '\x96', '\xE0', '\xBA', '\xBD', '\xE0', '\xBB', '\x86', '\xE0', '\xBA', '\xAF', /* ງ ຊ ຖ ຽ ໆ ຯ */
'\0',
'T', 'H', 'E', 'Z', 'O', 'C', 'Q', 'S', /* THEZOCQS */ 'T', 'H', 'E', 'Z', 'O', 'C', 'Q', 'S', /* THEZOCQS */
'\0', '\0',
'H', 'E', 'Z', 'L', 'O', 'C', 'U', 'S', /* HEZLOCUS */ 'H', 'E', 'Z', 'L', 'O', 'C', 'U', 'S', /* HEZLOCUS */
@ -68,9 +84,43 @@
'\0', '\0',
'p', 'q', 'g', 'j', 'y', /* pqgjy */ 'p', 'q', 'g', 'j', 'y', /* pqgjy */
'\0', '\0',
'\xE2', '\x82', '\x80', '\xE2', '\x82', '\x83', '\xE2', '\x82', '\x85', '\xE2', '\x82', '\x87', '\xE2', '\x82', '\x88', /* ₀₃₅₇₈ */
'\0',
'\xE2', '\x82', '\x80', '\xE2', '\x82', '\x81', '\xE2', '\x82', '\x82', '\xE2', '\x82', '\x83', '\xE2', '\x82', '\x88', /* ₀₁₂₃₈ */
'\0',
'\xE1', '\xB5', '\xA2', '\xE2', '\xB1', '\xBC', '\xE2', '\x82', '\x95', '\xE2', '\x82', '\x96', '\xE2', '\x82', '\x97', /* ᵢⱼₕₖₗ */
'\0',
'\xE2', '\x82', '\x90', '\xE2', '\x82', '\x91', '\xE2', '\x82', '\x92', '\xE2', '\x82', '\x93', '\xE2', '\x82', '\x99', '\xE2', '\x82', '\x9B', '\xE1', '\xB5', '\xA5', '\xE1', '\xB5', '\xA4', '\xE1', '\xB5', '\xA3', /* ₐₑₒₓₙₛᵥᵤᵣ */
'\0',
'\xE1', '\xB5', '\xA6', '\xE1', '\xB5', '\xA7', '\xE1', '\xB5', '\xA8', '\xE1', '\xB5', '\xA9', '\xE2', '\x82', '\x9A', /* ᵦᵧᵨᵩₚ */
'\0',
'\xE2', '\x81', '\xB0', '\xC2', '\xB3', '\xE2', '\x81', '\xB5', '\xE2', '\x81', '\xB7', '\xE1', '\xB5', '\x80', '\xE1', '\xB4', '\xB4', '\xE1', '\xB4', '\xB1', '\xE1', '\xB4', '\xBC', /* ⁰³⁵⁷ᵀᴴᴱᴼ */
'\0',
'\xE2', '\x81', '\xB0', '\xC2', '\xB9', '\xC2', '\xB2', '\xC2', '\xB3', '\xE1', '\xB4', '\xB1', '\xE1', '\xB4', '\xB8', '\xE1', '\xB4', '\xBC', '\xE1', '\xB5', '\x81', /* ⁰¹²³ᴱᴸᴼᵁ */
'\0',
'\xE1', '\xB5', '\x87', '\xE1', '\xB5', '\x88', '\xE1', '\xB5', '\x8F', '\xCA', '\xB0', '\xCA', '\xB2', '\xE1', '\xB6', '\xA0', '\xE2', '\x81', '\xB1', /* ᵇᵈᵏʰʲᶠⁱ */
'\0',
'\xE1', '\xB5', '\x89', '\xE1', '\xB5', '\x92', '\xCA', '\xB3', '\xCB', '\xA2', '\xCB', '\xA3', '\xE1', '\xB6', '\x9C', '\xE1', '\xB6', '\xBB', /* ᵉᵒʳˢˣᶜᶻ */
'\0',
'\xE1', '\xB5', '\x96', '\xCA', '\xB8', '\xE1', '\xB5', '\x8D', /* ᵖʸᵍ */
'\0',
'\xE0', '\xB0', '\x87', '\xE0', '\xB0', '\x8C', '\xE0', '\xB0', '\x99', '\xE0', '\xB0', '\x9E', '\xE0', '\xB0', '\xA3', '\xE0', '\xB0', '\xB1', '\xE0', '\xB1', '\xAF', /* ఇ ఌ ఙ ఞ ణ ఱ ౯ */ '\xE0', '\xB0', '\x87', '\xE0', '\xB0', '\x8C', '\xE0', '\xB0', '\x99', '\xE0', '\xB0', '\x9E', '\xE0', '\xB0', '\xA3', '\xE0', '\xB0', '\xB1', '\xE0', '\xB1', '\xAF', /* ఇ ఌ ఙ ఞ ణ ఱ ౯ */
'\0', '\0',
'\xE0', '\xB0', '\x85', '\xE0', '\xB0', '\x95', '\xE0', '\xB0', '\x9A', '\xE0', '\xB0', '\xB0', '\xE0', '\xB0', '\xBD', '\xE0', '\xB1', '\xA8', '\xE0', '\xB1', '\xAC', /* అ క చ ర ఽ ౨ ౬ */ '\xE0', '\xB0', '\x85', '\xE0', '\xB0', '\x95', '\xE0', '\xB0', '\x9A', '\xE0', '\xB0', '\xB0', '\xE0', '\xB0', '\xBD', '\xE0', '\xB1', '\xA8', '\xE0', '\xB1', '\xAC', /* అ క చ ర ఽ ౨ ౬ */
'\0',
'\xE0', '\xB8', '\x9A', '\xE0', '\xB9', '\x80', '\xE0', '\xB9', '\x81', '\xE0', '\xB8', '\xAD', '\xE0', '\xB8', '\x81', '\xE0', '\xB8', '\xB2', /* บ เ แ อ ก า */
'\0',
'\xE0', '\xB8', '\x9A', '\xE0', '\xB8', '\x9B', '\xE0', '\xB8', '\xA9', '\xE0', '\xB8', '\xAF', '\xE0', '\xB8', '\xAD', '\xE0', '\xB8', '\xA2', '\xE0', '\xB8', '\xAE', /* บ ป ษ ฯ อ ย ฮ */
'\0',
'\xE0', '\xB8', '\x9B', '\xE0', '\xB8', '\x9D', '\xE0', '\xB8', '\x9F', /* ป ฝ ฟ */
'\0',
'\xE0', '\xB9', '\x82', '\xE0', '\xB9', '\x83', '\xE0', '\xB9', '\x84', /* โ ใ ไ */
'\0',
'\xE0', '\xB8', '\x8E', '\xE0', '\xB8', '\x8F', '\xE0', '\xB8', '\xA4', '\xE0', '\xB8', '\xA6', /* ฎ ฏ ฤ ฦ */
'\0',
'\xE0', '\xB8', '\x8D', '\xE0', '\xB8', '\x90', /* ญ ฐ */
'\0',
'\xE0', '\xB9', '\x90', '\xE0', '\xB9', '\x91', '\xE0', '\xB9', '\x93', /* ๑ ๓ */
#ifdef AF_CONFIG_OPTION_CJK #ifdef AF_CONFIG_OPTION_CJK
'\0', '\0',
'\xE4', '\xBB', '\x96', '\xE4', '\xBB', '\xAC', '\xE4', '\xBD', '\xA0', '\xE4', '\xBE', '\x86', '\xE5', '\x80', '\x91', '\xE5', '\x88', '\xB0', '\xE5', '\x92', '\x8C', '\xE5', '\x9C', '\xB0', /* 他们你來們到和地 */ '\xE4', '\xBB', '\x96', '\xE4', '\xBB', '\xAC', '\xE4', '\xBD', '\xA0', '\xE4', '\xBE', '\x86', '\xE5', '\x80', '\x91', '\xE5', '\x88', '\xB0', '\xE5', '\x92', '\x8C', '\xE5', '\x9C', '\xB0', /* 他们你來們到和地 */
@ -121,6 +171,10 @@
af_blue_stringsets[] = af_blue_stringsets[] =
{ {
/* */ /* */
{ AF_BLUE_STRING_ARABIC_TOP, AF_BLUE_PROPERTY_LATIN_TOP },
{ AF_BLUE_STRING_ARABIC_BOTTOM, 0 },
{ AF_BLUE_STRING_ARABIC_JOIN, AF_BLUE_PROPERTY_LATIN_NEUTRAL },
{ AF_BLUE_STRING_MAX, 0 },
{ AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }, { AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP },
{ AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM, 0 }, { AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM, 0 },
{ AF_BLUE_STRING_CYRILLIC_SMALL, AF_BLUE_PROPERTY_LATIN_TOP | { AF_BLUE_STRING_CYRILLIC_SMALL, AF_BLUE_PROPERTY_LATIN_TOP |
@ -149,6 +203,13 @@
{ AF_BLUE_STRING_HEBREW_BOTTOM, 0 }, { AF_BLUE_STRING_HEBREW_BOTTOM, 0 },
{ AF_BLUE_STRING_HEBREW_DESCENDER, 0 }, { AF_BLUE_STRING_HEBREW_DESCENDER, 0 },
{ AF_BLUE_STRING_MAX, 0 }, { AF_BLUE_STRING_MAX, 0 },
{ AF_BLUE_STRING_LAO_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
AF_BLUE_PROPERTY_LATIN_X_HEIGHT },
{ AF_BLUE_STRING_LAO_BOTTOM, 0 },
{ AF_BLUE_STRING_LAO_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP },
{ AF_BLUE_STRING_LAO_LARGE_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP },
{ AF_BLUE_STRING_LAO_DESCENDER, 0 },
{ AF_BLUE_STRING_MAX, 0 },
{ AF_BLUE_STRING_LATIN_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }, { AF_BLUE_STRING_LATIN_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP },
{ AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM, 0 }, { AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM, 0 },
{ AF_BLUE_STRING_LATIN_SMALL_F_TOP, AF_BLUE_PROPERTY_LATIN_TOP }, { AF_BLUE_STRING_LATIN_SMALL_F_TOP, AF_BLUE_PROPERTY_LATIN_TOP },
@ -157,9 +218,34 @@
{ AF_BLUE_STRING_LATIN_SMALL, 0 }, { AF_BLUE_STRING_LATIN_SMALL, 0 },
{ AF_BLUE_STRING_LATIN_SMALL_DESCENDER, 0 }, { AF_BLUE_STRING_LATIN_SMALL_DESCENDER, 0 },
{ AF_BLUE_STRING_MAX, 0 }, { AF_BLUE_STRING_MAX, 0 },
{ AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP },
{ AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM, 0 },
{ AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP, AF_BLUE_PROPERTY_LATIN_TOP },
{ AF_BLUE_STRING_LATIN_SUBS_SMALL, AF_BLUE_PROPERTY_LATIN_TOP |
AF_BLUE_PROPERTY_LATIN_X_HEIGHT },
{ AF_BLUE_STRING_LATIN_SUBS_SMALL, 0 },
{ AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER, 0 },
{ AF_BLUE_STRING_MAX, 0 },
{ AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP },
{ AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM, 0 },
{ AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP, AF_BLUE_PROPERTY_LATIN_TOP },
{ AF_BLUE_STRING_LATIN_SUPS_SMALL, AF_BLUE_PROPERTY_LATIN_TOP |
AF_BLUE_PROPERTY_LATIN_X_HEIGHT },
{ AF_BLUE_STRING_LATIN_SUPS_SMALL, 0 },
{ AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER, 0 },
{ AF_BLUE_STRING_MAX, 0 },
{ AF_BLUE_STRING_TELUGU_TOP, AF_BLUE_PROPERTY_LATIN_TOP }, { AF_BLUE_STRING_TELUGU_TOP, AF_BLUE_PROPERTY_LATIN_TOP },
{ AF_BLUE_STRING_TELUGU_BOTTOM, 0 }, { AF_BLUE_STRING_TELUGU_BOTTOM, 0 },
{ AF_BLUE_STRING_MAX, 0 }, { AF_BLUE_STRING_MAX, 0 },
{ AF_BLUE_STRING_THAI_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
AF_BLUE_PROPERTY_LATIN_X_HEIGHT },
{ AF_BLUE_STRING_THAI_BOTTOM, 0 },
{ AF_BLUE_STRING_THAI_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP },
{ AF_BLUE_STRING_THAI_LARGE_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP },
{ AF_BLUE_STRING_THAI_DESCENDER, 0 },
{ AF_BLUE_STRING_THAI_LARGE_DESCENDER, 0 },
{ AF_BLUE_STRING_THAI_DIGIT_TOP, 0 },
{ AF_BLUE_STRING_MAX, 0 },
#ifdef AF_CONFIG_OPTION_CJK #ifdef AF_CONFIG_OPTION_CJK
{ AF_BLUE_STRING_CJK_TOP, AF_BLUE_PROPERTY_CJK_TOP }, { AF_BLUE_STRING_CJK_TOP, AF_BLUE_PROPERTY_CJK_TOP },
{ AF_BLUE_STRING_CJK_BOTTOM, 0 }, { AF_BLUE_STRING_CJK_BOTTOM, 0 },

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Auto-fitter data for blue strings (body). */ /* Auto-fitter data for blue strings (body). */
/* */ /* */
/* Copyright 2013 by */ /* Copyright 2013-2015 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

Some files were not shown because too many files have changed in this diff Show More