diff options
author | marha <marha@users.sourceforge.net> | 2015-06-15 20:22:43 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2015-06-15 20:22:43 +0200 |
commit | 0b3be550b20ad9f991f77bf979b2c306a7d4ef11 (patch) | |
tree | 523f6db090457118723eca33dabc7758eeb2dcde /freetype/include | |
parent | 5fe210ff514aa4b3149ea7561862776d7b8849e7 (diff) | |
download | vcxsrv-0b3be550b20ad9f991f77bf979b2c306a7d4ef11.tar.gz vcxsrv-0b3be550b20ad9f991f77bf979b2c306a7d4ef11.tar.bz2 vcxsrv-0b3be550b20ad9f991f77bf979b2c306a7d4ef11.zip |
Update to freetype 2.6
Diffstat (limited to 'freetype/include')
86 files changed, 451 insertions, 289 deletions
diff --git a/freetype/include/config/ftconfig.h b/freetype/include/config/ftconfig.h index 22d70fd35..086db76ab 100644 --- a/freetype/include/config/ftconfig.h +++ b/freetype/include/config/ftconfig.h @@ -4,7 +4,7 @@ /* */ /* 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. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -319,11 +319,28 @@ FT_BEGIN_HEADER #endif + /*************************************************************************/ + /* */ + /* miscellaneous */ + /* */ + /*************************************************************************/ + + #define FT_BEGIN_STMNT do { #define FT_END_STMNT } while ( 0 ) #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 TYPEOF( type ) (__typeof__ (type)) +#else +#define TYPEOF( type ) /* empty */ +#endif + + #ifdef FT_MAKE_OPTION_SINGLE_OBJECT #define FT_LOCAL( x ) static x diff --git a/freetype/include/config/ftheader.h b/freetype/include/config/ftheader.h index b62362992..4906bc1f2 100644 --- a/freetype/include/config/ftheader.h +++ b/freetype/include/config/ftheader.h @@ -4,7 +4,7 @@ /* */ /* 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. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -710,14 +710,16 @@ /************************************************************************* * * @macro: - * FT_XFREE86_H + * FT_FONT_FORMATS_H * * @description: * A macro used in #include statements to name the file containing the - * FreeType~2 API which provides functions specific to the XFree86 and - * X.Org X11 servers. + * FreeType~2 API which provides functions specific to font formats. */ -#define FT_XFREE86_H <ftxf86.h> +#define FT_FONT_FORMATS_H <ftfntfmt.h> + + /* deprecated */ +#define FT_XFREE86_H FT_FONT_FORMATS_H /************************************************************************* diff --git a/freetype/include/config/ftoption.h b/freetype/include/config/ftoption.h index 2b0b67e7a..1536c7236 100644 --- a/freetype/include/config/ftoption.h +++ b/freetype/include/config/ftoption.h @@ -4,7 +4,7 @@ /* */ /* User-selectable configuration macros (specification only). */ /* */ -/* Copyright 1996-2014 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -378,10 +378,6 @@ FT_BEGIN_HEADER /* The size in bytes of the render pool used by the scan-line converter */ /* 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 @@ -435,6 +431,8 @@ FT_BEGIN_HEADER /* af_glyph_hints_dump_points */ /* af_glyph_hints_dump_segments */ /* 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: */ /* */ @@ -659,19 +657,6 @@ FT_BEGIN_HEADER /*************************************************************************/ /* */ - /* 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 */ /* TrueType glyph loader to use Apple's definition of how to handle */ /* component offsets in composite glyphs. */ @@ -684,7 +669,7 @@ FT_BEGIN_HEADER /* fonts will not have them. */ /* */ /* 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 @@ -835,10 +820,12 @@ FT_BEGIN_HEADER /* grid. To find out the optimal scaling and shifting value, various */ /* parameter combinations are tried and scored. */ /* */ - /* This experimental option is only active if the render mode is */ - /* FT_RENDER_MODE_LIGHT. */ + /* This experimental option is active only if the rendering mode is */ + /* 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 /* */ diff --git a/freetype/include/config/ftstdlib.h b/freetype/include/config/ftstdlib.h index b940efc42..8ef43c04b 100644 --- a/freetype/include/config/ftstdlib.h +++ b/freetype/include/config/ftstdlib.h @@ -5,7 +5,7 @@ /* ANSI-specific library and header configuration file (specification */ /* only). */ /* */ -/* Copyright 2002-2007, 2009, 2011-2012 by */ +/* Copyright 2002-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -141,8 +141,7 @@ /**********************************************************************/ -#define ft_atol atol -#define ft_labs labs +#define ft_atol atol /**********************************************************************/ diff --git a/freetype/include/freetype.h b/freetype/include/freetype.h index 27fd44bfc..bca93e5b8 100644 --- a/freetype/include/freetype.h +++ b/freetype/include/freetype.h @@ -4,7 +4,7 @@ /* */ /* FreeType high-level API and common types (specification only). */ /* */ -/* Copyright 1996-2014 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* 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 */ /* scan-line converter object (see @FT_Raster). */ /* */ - /* In multi-threaded applications, make sure that the same FT_Library */ - /* object or any of its children doesn't get accessed in parallel. */ + /* In multi-threaded applications it is easiest to use one */ + /* `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> */ /* 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). */ /* */ + /* 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> */ /* See @FT_FaceRec for the publicly accessible fields of a given face */ /* object. */ @@ -631,9 +642,13 @@ FT_BEGIN_HEADER /* */ /* FT_ENCODING_MS_SYMBOL :: */ /* Corresponds to the Microsoft Symbol encoding, used to encode */ - /* mathematical symbols in the 32..255 character code range. For */ - /* more information, see */ - /* `http://www.kostis.net/charsets/symbol.htm'. */ + /* mathematical symbols and wingdings. For more information, see */ + /* `http://www.microsoft.com/typography/otspec/recom.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 :: */ /* Corresponds to Japanese SJIS encoding. More info at */ @@ -651,7 +666,7 @@ FT_BEGIN_HEADER /* FT_ENCODING_WANSUNG :: */ /* Corresponds to the Korean encoding system known as Wansung. */ /* For more information see */ - /* `http://msdn.microsoft.com/en-US/goglobal/cc305154'. */ + /* `https://msdn.microsoft.com/en-US/goglobal/cc305154'. */ /* */ /* FT_ENCODING_JOHAB :: */ /* The Korean standard character set (KS~C 5601-1992), which */ @@ -893,6 +908,11 @@ FT_BEGIN_HEADER /* Can be NULL (e.g., in fonts embedded in a */ /* 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 */ /* string, usually in English, that describes */ /* the typeface's style (like `Italic', */ @@ -1140,7 +1160,7 @@ FT_BEGIN_HEADER /* TrueType bytecode instructions to move and scale all of its */ /* 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_NO_HINTING. You have to set both @FT_LOAD_NO_HINTING */ /* and @FT_LOAD_NO_AUTOHINT to really disable hinting; however, you */ @@ -1649,11 +1669,11 @@ FT_BEGIN_HEADER /* needs to know about the image format. */ /* */ /* lsb_delta :: The difference between hinted and unhinted */ - /* left side bearing while autohinting is */ + /* left side bearing while auto-hinting is */ /* active. Zero otherwise. */ /* */ /* rsb_delta :: The difference between hinted and unhinted */ - /* right side bearing while autohinting is */ + /* right side bearing while auto-hinting is */ /* active. Zero otherwise. */ /* */ /* <Note> */ @@ -1676,7 +1696,7 @@ FT_BEGIN_HEADER /* `slot->format' is also changed to @FT_GLYPH_FORMAT_BITMAP. */ /* */ /* <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': */ /* */ /* { */ @@ -1769,8 +1789,8 @@ FT_BEGIN_HEADER /* use @FT_New_Library instead, followed by a call to */ /* @FT_Add_Default_Modules (or a series of calls to @FT_Add_Module). */ /* */ - /* For multi-threading applications each thread should have its own */ - /* FT_Library object. */ + /* See the documentation of @FT_Library and @FT_Face for */ + /* multi-threading issues. */ /* */ /* If you need reference-counting (cf. @FT_Reference_Library), use */ /* @FT_New_Library and @FT_Done_Library. */ @@ -3398,8 +3418,9 @@ FT_BEGIN_HEADER /* @FT_Get_FSType_Flags; they inform client applications of embedding */ /* and subsetting restrictions associated with a font. */ /* */ - /* See http://www.adobe.com/devnet/acrobat/pdfs/FontPolicies.pdf for */ - /* more details. */ + /* See */ + /* http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/FontPolicies.pdf */ + /* for more details. */ /* */ /* <Values> */ /* FT_FSTYPE_INSTALLABLE_EMBEDDING :: */ @@ -3936,8 +3957,8 @@ FT_BEGIN_HEADER * */ #define FREETYPE_MAJOR 2 -#define FREETYPE_MINOR 5 -#define FREETYPE_PATCH 5 +#define FREETYPE_MINOR 6 +#define FREETYPE_PATCH 0 /*************************************************************************/ diff --git a/freetype/include/ft2build.h b/freetype/include/ft2build.h index 6f8eb7f37..09c19d42a 100644 --- a/freetype/include/ft2build.h +++ b/freetype/include/ft2build.h @@ -4,7 +4,7 @@ /* */ /* FreeType 2 build and setup macros. */ /* */ -/* Copyright 1996-2001, 2006, 2013 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftadvanc.h b/freetype/include/ftadvanc.h index 955f93fa1..b4d2aed56 100644 --- a/freetype/include/ftadvanc.h +++ b/freetype/include/ftadvanc.h @@ -4,7 +4,7 @@ /* */ /* Quick computation of advance widths (specification only). */ /* */ -/* Copyright 2008, 2013, 2014 by */ +/* Copyright 2008-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* 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 */ /* comparison. */ /* */ -#define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000UL +#define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000L /*************************************************************************/ diff --git a/freetype/include/ftautoh.h b/freetype/include/ftautoh.h index 59191abbf..cf7b76f49 100644 --- a/freetype/include/ftautoh.h +++ b/freetype/include/ftautoh.h @@ -4,7 +4,7 @@ /* */ /* FreeType API for controlling the auto-hinter (specification only). */ /* */ -/* Copyright 2012, 2013 by */ +/* Copyright 2012-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -300,7 +300,7 @@ FT_BEGIN_HEADER * @description: * *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 * glyph coverages, this property sets the (auto-fitter) script to be * used for the default (OpenType) script data of a font's GSUB table. @@ -391,6 +391,54 @@ FT_BEGIN_HEADER } 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. + * + */ + + /* */ diff --git a/freetype/include/ftbbox.h b/freetype/include/ftbbox.h index d6800e240..9d9d04076 100644 --- a/freetype/include/ftbbox.h +++ b/freetype/include/ftbbox.h @@ -4,7 +4,7 @@ /* */ /* FreeType exact bbox computation (specification). */ /* */ -/* Copyright 1996-2001, 2003, 2007, 2011, 2013 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftbdf.h b/freetype/include/ftbdf.h index 6d262e414..0bdabf481 100644 --- a/freetype/include/ftbdf.h +++ b/freetype/include/ftbdf.h @@ -4,7 +4,7 @@ /* */ /* 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. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftbitmap.h b/freetype/include/ftbitmap.h index eae716904..46cc47b7d 100644 --- a/freetype/include/ftbitmap.h +++ b/freetype/include/ftbitmap.h @@ -4,7 +4,7 @@ /* */ /* FreeType utility functions for bitmaps (specification). */ /* */ -/* Copyright 2004-2006, 2008, 2013, 2014 by */ +/* Copyright 2004-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -55,7 +55,7 @@ FT_BEGIN_HEADER /*************************************************************************/ /* */ /* <Function> */ - /* FT_Bitmap_New */ + /* FT_Bitmap_Init */ /* */ /* <Description> */ /* Initialize a pointer to an @FT_Bitmap structure. */ @@ -63,6 +63,14 @@ FT_BEGIN_HEADER /* <InOut> */ /* 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_Bitmap_New( FT_Bitmap *abitmap ); @@ -202,7 +210,7 @@ FT_BEGIN_HEADER /* FT_Bitmap_Done */ /* */ /* <Description> */ - /* Destroy a bitmap object created with @FT_Bitmap_New. */ + /* Destroy a bitmap object initialized with @FT_Bitmap_Init. */ /* */ /* <Input> */ /* library :: A handle to a library object. */ diff --git a/freetype/include/ftbzip2.h b/freetype/include/ftbzip2.h index 4dce161fd..c25f9469d 100644 --- a/freetype/include/ftbzip2.h +++ b/freetype/include/ftbzip2.h @@ -4,7 +4,7 @@ /* */ /* Bzip2-compressed stream support. */ /* */ -/* Copyright 2010 by */ +/* Copyright 2010-2015 by */ /* Joel Klinghed. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftcache.h b/freetype/include/ftcache.h index a30e925cc..68525bb82 100644 --- a/freetype/include/ftcache.h +++ b/freetype/include/ftcache.h @@ -4,7 +4,7 @@ /* */ /* FreeType Cache subsystem (specification). */ /* */ -/* Copyright 1996-2008, 2010, 2013, 2014 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -667,8 +667,8 @@ FT_BEGIN_HEADER typedef struct FTC_ImageTypeRec_ { FTC_FaceID face_id; - FT_Int width; - FT_Int height; + FT_UInt width; + FT_UInt height; FT_Int32 flags; } FTC_ImageTypeRec; diff --git a/freetype/include/ftcffdrv.h b/freetype/include/ftcffdrv.h index f7031bc88..6c8e416ce 100644 --- a/freetype/include/ftcffdrv.h +++ b/freetype/include/ftcffdrv.h @@ -4,7 +4,7 @@ /* */ /* FreeType API for controlling the CFF driver (specification only). */ /* */ -/* Copyright 2013, 2014 by */ +/* Copyright 2013-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftcid.h b/freetype/include/ftcid.h index 17550d87b..05741c85b 100644 --- a/freetype/include/ftcid.h +++ b/freetype/include/ftcid.h @@ -4,7 +4,8 @@ /* */ /* 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, */ /* modified, and distributed under the terms of the FreeType project */ diff --git a/freetype/include/fterrdef.h b/freetype/include/fterrdef.h index 99b2fadec..1bf0751b1 100644 --- a/freetype/include/fterrdef.h +++ b/freetype/include/fterrdef.h @@ -4,7 +4,7 @@ /* */ /* FreeType error codes (specification). */ /* */ -/* Copyright 2002, 2004, 2006, 2007, 2010-2013 by */ +/* Copyright 2002-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/fterrors.h b/freetype/include/fterrors.h index 0fa3e4dce..376bee6f8 100644 --- a/freetype/include/fterrors.h +++ b/freetype/include/fterrors.h @@ -4,7 +4,7 @@ /* */ /* FreeType error code handling (specification). */ /* */ -/* Copyright 1996-2002, 2004, 2007, 2013 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftxf86.h b/freetype/include/ftfntfmt.h index 89d1993e1..1f8ff28f1 100644..100755 --- a/freetype/include/ftxf86.h +++ b/freetype/include/ftfntfmt.h @@ -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. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __FTXF86_H__ -#define __FTXF86_H__ +#ifndef __FTFNTFMT_H__ +#define __FTFNTFMT_H__ #include <ft2build.h> #include FT_FREETYPE_H @@ -49,22 +49,20 @@ FT_BEGIN_HEADER /* however, there are special cases (like in PDF devices) where it is */ /* 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> */ - /* FT_Get_X11_Font_Format */ + /* FT_Get_Font_Format */ /* */ /* <Description> */ - /* Return a string describing the format of a given face, using values */ - /* that can be used as an X11 FONT_PROPERTY. Possible values are */ - /* `TrueType', `Type~1', `BDF', `PCF', `Type~42', `CID~Type~1', `CFF', */ - /* `PFR', and `Windows~FNT'. */ + /* Return a string describing the format of a given face. Possible */ + /* values are `TrueType', `Type~1', `BDF', `PCF', `Type~42', */ + /* `CID~Type~1', `CFF', `PFR', and `Windows~FNT'. */ + /* */ + /* The return value is suitable to be used as an X11 FONT_PROPERTY. */ /* */ /* <Input> */ /* face :: */ @@ -73,12 +71,22 @@ FT_BEGIN_HEADER /* <Return> */ /* 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_Get_X11_Font_Format( FT_Face face ); + /* */ FT_END_HEADER -#endif /* __FTXF86_H__ */ +#endif /* __FTFNTFMT_H__ */ diff --git a/freetype/include/ftgasp.h b/freetype/include/ftgasp.h index 3f3d76546..9a9b6321b 100644 --- a/freetype/include/ftgasp.h +++ b/freetype/include/ftgasp.h @@ -4,7 +4,7 @@ /* */ /* Access of TrueType's `gasp' table (specification). */ /* */ -/* Copyright 2007, 2008, 2011 by */ +/* Copyright 2007-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftglyph.h b/freetype/include/ftglyph.h index 15fa6a995..803ad3962 100644 --- a/freetype/include/ftglyph.h +++ b/freetype/include/ftglyph.h @@ -4,7 +4,7 @@ /* */ /* 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. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftgxval.h b/freetype/include/ftgxval.h index 88c3d9375..0e9ac1dad 100644 --- a/freetype/include/ftgxval.h +++ b/freetype/include/ftgxval.h @@ -4,7 +4,7 @@ /* */ /* FreeType API for validating TrueTypeGX/AAT tables (specification). */ /* */ -/* Copyright 2004-2006, 2013 by */ +/* Copyright 2004-2015 by */ /* Masatake YAMATO, Redhat K.K, */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/freetype/include/ftgzip.h b/freetype/include/ftgzip.h index eb346c6dc..b3a532d5e 100644 --- a/freetype/include/ftgzip.h +++ b/freetype/include/ftgzip.h @@ -4,7 +4,7 @@ /* */ /* Gzip-compressed stream support. */ /* */ -/* Copyright 2002-2004, 2006, 2013 by */ +/* Copyright 2002-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftimage.h b/freetype/include/ftimage.h index 2f7ca2aaf..82f284c4f 100644 --- a/freetype/include/ftimage.h +++ b/freetype/include/ftimage.h @@ -5,7 +5,7 @@ /* FreeType glyph image formats and default raster interface */ /* (specification). */ /* */ -/* Copyright 1996-2010, 2013, 2014 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* 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 */ /* 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_ { unsigned int rows; @@ -1078,10 +1073,10 @@ FT_BEGIN_HEADER /* FT_Raster_ResetFunc */ /* */ /* <Description> */ - /* FreeType provides an area of memory called the `render pool', */ - /* available to all registered rasters. This pool can be freely used */ - /* during a given scan-conversion but is shared by all rasters. Its */ - /* content is thus transient. */ + /* FreeType used to provide an area of memory called the `render */ + /* pool' available to all registered rasters. This was not thread */ + /* safe however and now FreeType never allocates this pool. NULL */ + /* is always passed in as pool_base. */ /* */ /* This function is called each time the render pool changes, or just */ /* after a new raster object is created. */ @@ -1094,10 +1089,9 @@ FT_BEGIN_HEADER /* pool_size :: The size in bytes of the render pool. */ /* */ /* <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 */ - /* passed to the raster constructor). However, this is not */ - /* recommended for efficiency purposes. */ + /* passed to the raster constructor). */ /* */ typedef void (*FT_Raster_ResetFunc)( FT_Raster raster, diff --git a/freetype/include/ftincrem.h b/freetype/include/ftincrem.h index 4c0246c5d..840af25b0 100644 --- a/freetype/include/ftincrem.h +++ b/freetype/include/ftincrem.h @@ -4,7 +4,7 @@ /* */ /* FreeType incremental loading (specification). */ /* */ -/* Copyright 2002, 2003, 2006-2008, 2010, 2014 by */ +/* Copyright 2002-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftlcdfil.h b/freetype/include/ftlcdfil.h index e8679c1a3..4cd999a4b 100644 --- a/freetype/include/ftlcdfil.h +++ b/freetype/include/ftlcdfil.h @@ -5,7 +5,7 @@ /* FreeType API for color filtering of subpixel bitmap glyphs */ /* (specification). */ /* */ -/* Copyright 2006-2008, 2010, 2013, 2014 by */ +/* Copyright 2006-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftlist.h b/freetype/include/ftlist.h index 9950a2799..12b48c78f 100644 --- a/freetype/include/ftlist.h +++ b/freetype/include/ftlist.h @@ -4,7 +4,7 @@ /* */ /* 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. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftlzw.h b/freetype/include/ftlzw.h index 857c0c52b..d3ec28e55 100644 --- a/freetype/include/ftlzw.h +++ b/freetype/include/ftlzw.h @@ -4,7 +4,7 @@ /* */ /* LZW-compressed stream support. */ /* */ -/* Copyright 2004, 2006 by */ +/* Copyright 2004-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftmac.h b/freetype/include/ftmac.h index 42874fe6f..14c55cfe2 100644 --- a/freetype/include/ftmac.h +++ b/freetype/include/ftmac.h @@ -4,7 +4,7 @@ /* */ /* 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. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftmm.h b/freetype/include/ftmm.h index 2dcfd678d..6ef47987e 100644 --- a/freetype/include/ftmm.h +++ b/freetype/include/ftmm.h @@ -4,7 +4,7 @@ /* */ /* 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. */ /* */ /* 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 */ /* even though the Type~1 specification strangely */ - /* allows for intermediate designs to be present. This */ - /* number cannot exceed~16. */ + /* allows for intermediate designs to be present. */ + /* This number cannot exceed~16. */ /* */ /* axis :: A table of axis descriptors. */ /* */ @@ -201,10 +201,10 @@ FT_BEGIN_HEADER /* associated with them. The font can tell the */ /* 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. */ /* */ - /* namedstyles :: A table of named styles. */ + /* namedstyle :: A named style table. */ /* Only meaningful with GX. */ /* */ typedef struct FT_MM_Var_ @@ -280,8 +280,10 @@ FT_BEGIN_HEADER /* face :: A handle to the source face. */ /* */ /* <Input> */ - /* num_coords :: The number of design coordinates (must be equal to */ - /* the number of axes in the font). */ + /* num_coords :: The number of available design coordinates. If it */ + /* 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. */ /* */ @@ -307,8 +309,10 @@ FT_BEGIN_HEADER /* face :: A handle to the source face. */ /* */ /* <Input> */ - /* num_coords :: The number of design coordinates (must be equal to */ - /* the number of axes in the font). */ + /* num_coords :: The number of available design coordinates. If it */ + /* 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. */ /* */ @@ -334,8 +338,10 @@ FT_BEGIN_HEADER /* face :: A handle to the source face. */ /* */ /* <Input> */ - /* num_coords :: The number of design coordinates (must be equal to */ - /* the number of axes in the font). */ + /* num_coords :: The number of available design coordinates. If it */ + /* 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 */ /* between 0 and 1.0). */ diff --git a/freetype/include/ftmodapi.h b/freetype/include/ftmodapi.h index 980f15d3d..2ef3f4674 100644 --- a/freetype/include/ftmodapi.h +++ b/freetype/include/ftmodapi.h @@ -4,7 +4,7 @@ /* */ /* 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. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -469,7 +469,9 @@ FT_BEGIN_HEADER /* <Description> */ /* This function is used to create a new FreeType library instance */ /* 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 */ /* @FT_Add_Default_Modules or a series of calls to @FT_Add_Module) */ diff --git a/freetype/include/ftmoderr.h b/freetype/include/ftmoderr.h index 5a27db151..9d7f98140 100644 --- a/freetype/include/ftmoderr.h +++ b/freetype/include/ftmoderr.h @@ -4,7 +4,7 @@ /* */ /* FreeType module error offsets (specification). */ /* */ -/* Copyright 2001-2005, 2010, 2013 by */ +/* Copyright 2001-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftotval.h b/freetype/include/ftotval.h index 75ba03ee8..e744b713f 100644 --- a/freetype/include/ftotval.h +++ b/freetype/include/ftotval.h @@ -4,7 +4,7 @@ /* */ /* FreeType API for validating OpenType tables (specification). */ /* */ -/* Copyright 2004-2007, 2013, 2014 by */ +/* Copyright 2004-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftoutln.h b/freetype/include/ftoutln.h index d3b8fbd26..106cfde06 100644 --- a/freetype/include/ftoutln.h +++ b/freetype/include/ftoutln.h @@ -5,7 +5,7 @@ /* Support for the FT_Outline type used to store glyph shapes of */ /* most scalable font formats (specification). */ /* */ -/* Copyright 1996-2003, 2005-2014 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftpfr.h b/freetype/include/ftpfr.h index 7d5035396..a1c02a2f5 100644 --- a/freetype/include/ftpfr.h +++ b/freetype/include/ftpfr.h @@ -4,7 +4,7 @@ /* */ /* 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. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftrender.h b/freetype/include/ftrender.h index e8d36363c..ec8da700b 100644 --- a/freetype/include/ftrender.h +++ b/freetype/include/ftrender.h @@ -4,7 +4,7 @@ /* */ /* FreeType renderer modules public interface (specification). */ /* */ -/* Copyright 1996-2001, 2005, 2006, 2010 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* 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. */ /* */ - /* Currently, only the B/W renderer, if compiled with */ - /* FT_RASTER_OPTION_ANTI_ALIASING (providing a 5-levels */ - /* 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. */ + /* Currently, no FreeType renderer module uses `parameters'; you */ + /* should thus always pass NULL as the value. */ /* */ FT_EXPORT( FT_Error ) FT_Set_Renderer( FT_Library library, diff --git a/freetype/include/ftsizes.h b/freetype/include/ftsizes.h index 416704570..bef842471 100644 --- a/freetype/include/ftsizes.h +++ b/freetype/include/ftsizes.h @@ -4,7 +4,7 @@ /* */ /* 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. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftsnames.h b/freetype/include/ftsnames.h index 88af44035..0f7fbe174 100644 --- a/freetype/include/ftsnames.h +++ b/freetype/include/ftsnames.h @@ -7,7 +7,7 @@ /* */ /* 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. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftstroke.h b/freetype/include/ftstroke.h index bd311709f..7ebb1e740 100644 --- a/freetype/include/ftstroke.h +++ b/freetype/include/ftstroke.h @@ -4,7 +4,7 @@ /* */ /* FreeType path stroker (specification). */ /* */ -/* Copyright 2002-2006, 2008, 2009, 2011-2012, 2014 by */ +/* Copyright 2002-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftsynth.h b/freetype/include/ftsynth.h index d0ea73087..fbcbad871 100644 --- a/freetype/include/ftsynth.h +++ b/freetype/include/ftsynth.h @@ -5,7 +5,7 @@ /* FreeType synthesizing code for emboldening and slanting */ /* (specification). */ /* */ -/* Copyright 2000-2001, 2003, 2006, 2008, 2012, 2013 by */ +/* Copyright 2000-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* 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. */ /* */ /* For emboldened outlines the height, width, and advance metrics are */ - /* increased by the strength of the emboldening. You can also call */ - /* @FT_Outline_Get_CBox to get precise values. */ + /* increased by the strength of the emboldening -- this even affects */ + /* mono-width fonts! */ + /* */ + /* You can also call @FT_Outline_Get_CBox to get precise values. */ FT_EXPORT( void ) FT_GlyphSlot_Embolden( FT_GlyphSlot slot ); diff --git a/freetype/include/ftsystem.h b/freetype/include/ftsystem.h index 7436ed267..2bc999910 100644 --- a/freetype/include/ftsystem.h +++ b/freetype/include/ftsystem.h @@ -4,7 +4,7 @@ /* */ /* 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. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/fttrigon.h b/freetype/include/fttrigon.h index 9c7b54324..3d821ba16 100644 --- a/freetype/include/fttrigon.h +++ b/freetype/include/fttrigon.h @@ -4,7 +4,7 @@ /* */ /* FreeType trigonometric functions (specification). */ /* */ -/* Copyright 2001, 2003, 2005, 2007, 2013 by */ +/* Copyright 2001-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftttdrv.h b/freetype/include/ftttdrv.h index 358841397..f56040b82 100644 --- a/freetype/include/ftttdrv.h +++ b/freetype/include/ftttdrv.h @@ -5,7 +5,7 @@ /* FreeType API for controlling the TrueType driver */ /* (specification only). */ /* */ -/* Copyright 2013 by */ +/* Copyright 2013-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -67,13 +67,13 @@ FT_BEGIN_HEADER * 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. + * 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 @@ -135,24 +135,87 @@ FT_BEGIN_HEADER * `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. + * 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. * * { - * 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 + * 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 * } * - * Since FreeType doesn't provide all capabilities of DWrite ClearType, - * using version~38 seems justified. + * 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 diff --git a/freetype/include/fttypes.h b/freetype/include/fttypes.h index 2c01e8737..706a1be4e 100644 --- a/freetype/include/fttypes.h +++ b/freetype/include/fttypes.h @@ -4,7 +4,7 @@ /* */ /* 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. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ftwinfnt.h b/freetype/include/ftwinfnt.h index 50261581a..caedaa1cc 100644 --- a/freetype/include/ftwinfnt.h +++ b/freetype/include/ftwinfnt.h @@ -4,7 +4,7 @@ /* */ /* FreeType API for accessing Windows fnt-specific data. */ /* */ -/* Copyright 2003, 2004, 2008 by */ +/* Copyright 2003-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* 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 * @FT_WinFNT_HeaderRec. Exact mapping tables for the various cpXXXX * 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 * MAPPINGS/OBSOLETE/EASTASIA/KSC/JOHAB.TXT. * @@ -95,7 +95,7 @@ FT_BEGIN_HEADER * second default codepage that most international versions of * 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. * A German Windows version for example usually uses ANSI codepage diff --git a/freetype/include/internal/autohint.h b/freetype/include/internal/autohint.h index 545de938c..8d5a9773c 100644 --- a/freetype/include/internal/autohint.h +++ b/freetype/include/internal/autohint.h @@ -4,7 +4,7 @@ /* */ /* 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. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/ftcalc.h b/freetype/include/internal/ftcalc.h index 14ec37b9c..75752c3d9 100644 --- a/freetype/include/internal/ftcalc.h +++ b/freetype/include/internal/ftcalc.h @@ -4,7 +4,7 @@ /* */ /* Arithmetic computations (specification). */ /* */ -/* Copyright 1996-2006, 2008, 2009, 2012-2014 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/ftdebug.h b/freetype/include/internal/ftdebug.h index 58a3916d7..216c73031 100644 --- a/freetype/include/internal/ftdebug.h +++ b/freetype/include/internal/ftdebug.h @@ -4,7 +4,7 @@ /* */ /* Debugging and logging component (specification). */ /* */ -/* Copyright 1996-2002, 2004, 2006-2009, 2013 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* 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 */ /* debug level in your application. */ /* */ - FT_BASE( const char * ) + FT_BASE( const char* ) FT_Trace_Get_Name( FT_Int idx ); diff --git a/freetype/include/internal/ftdriver.h b/freetype/include/internal/ftdriver.h index 940218e62..16856d3df 100644 --- a/freetype/include/internal/ftdriver.h +++ b/freetype/include/internal/ftdriver.h @@ -4,7 +4,7 @@ /* */ /* FreeType font driver interface (specification). */ /* */ -/* Copyright 1996-2003, 2006, 2008, 2011-2013 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/ftgloadr.h b/freetype/include/internal/ftgloadr.h index f70774f74..970dd70cc 100644 --- a/freetype/include/internal/ftgloadr.h +++ b/freetype/include/internal/ftgloadr.h @@ -4,7 +4,7 @@ /* */ /* The FreeType glyph loader (specification). */ /* */ -/* Copyright 2002, 2003, 2005, 2006 by */ +/* Copyright 2002-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -121,23 +121,25 @@ FT_BEGIN_HEADER FT_UInt n_contours ); -#define FT_GLYPHLOADER_CHECK_P( _loader, _count ) \ - ( (_count) == 0 || \ - ( (_loader)->base.outline.n_points + \ - (_loader)->current.outline.n_points + \ - (unsigned long)(_count) ) <= (_loader)->max_points ) - -#define FT_GLYPHLOADER_CHECK_C( _loader, _count ) \ - ( (_count) == 0 || \ - ( (_loader)->base.outline.n_contours + \ - (_loader)->current.outline.n_contours + \ - (unsigned long)(_count)) <= (_loader)->max_contours ) - -#define FT_GLYPHLOADER_CHECK_POINTS( _loader, _points, _contours ) \ - ( ( FT_GLYPHLOADER_CHECK_P( _loader, _points ) && \ - FT_GLYPHLOADER_CHECK_C( _loader, _contours ) ) \ - ? 0 \ - : FT_GlyphLoader_CheckPoints( (_loader), (_points), (_contours) ) ) +#define FT_GLYPHLOADER_CHECK_P( _loader, _count ) \ + ( (_count) == 0 || \ + ( (FT_UInt)(_loader)->base.outline.n_points + \ + (FT_UInt)(_loader)->current.outline.n_points + \ + (FT_UInt)(_count) ) <= (_loader)->max_points ) + +#define FT_GLYPHLOADER_CHECK_C( _loader, _count ) \ + ( (_count) == 0 || \ + ( (FT_UInt)(_loader)->base.outline.n_contours + \ + (FT_UInt)(_loader)->current.outline.n_contours + \ + (FT_UInt)(_count) ) <= (_loader)->max_contours ) + +#define FT_GLYPHLOADER_CHECK_POINTS( _loader, _points, _contours ) \ + ( ( FT_GLYPHLOADER_CHECK_P( _loader, _points ) && \ + FT_GLYPHLOADER_CHECK_C( _loader, _contours ) ) \ + ? 0 \ + : FT_GlyphLoader_CheckPoints( (_loader), \ + (FT_UInt)(_points), \ + (FT_UInt)(_contours) ) ) /* check that there is enough space to add `n_subs' sub-glyphs to */ diff --git a/freetype/include/internal/ftmemory.h b/freetype/include/internal/ftmemory.h index 3d51aeec6..c0c553b4f 100644 --- a/freetype/include/internal/ftmemory.h +++ b/freetype/include/internal/ftmemory.h @@ -4,7 +4,7 @@ /* */ /* 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 */ /* */ /* 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( 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 ) @@ -227,14 +230,19 @@ FT_BEGIN_HEADER #define FT_ZERO( p ) FT_MEM_ZERO( p, sizeof ( *(p) ) ) -#define FT_ARRAY_ZERO( dest, count ) \ - FT_MEM_ZERO( dest, (count) * sizeof ( *(dest) ) ) +#define FT_ARRAY_ZERO( dest, count ) \ + FT_MEM_ZERO( dest, \ + (FT_Offset)(count) * sizeof ( *(dest) ) ) -#define FT_ARRAY_COPY( dest, source, count ) \ - FT_MEM_COPY( dest, source, (count) * sizeof ( *(dest) ) ) +#define FT_ARRAY_COPY( dest, source, count ) \ + FT_MEM_COPY( dest, \ + source, \ + (FT_Offset)(count) * sizeof ( *(dest) ) ) -#define FT_ARRAY_MOVE( dest, source, count ) \ - FT_MEM_MOVE( dest, source, (count) * sizeof ( *(dest) ) ) +#define FT_ARRAY_MOVE( dest, source, count ) \ + FT_MEM_MOVE( dest, \ + source, \ + (FT_Offset)(count) * sizeof ( *(dest) ) ) /* diff --git a/freetype/include/internal/ftobjs.h b/freetype/include/internal/ftobjs.h index b45a5ed81..37317a43c 100644 --- a/freetype/include/internal/ftobjs.h +++ b/freetype/include/internal/ftobjs.h @@ -4,7 +4,7 @@ /* */ /* 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. */ /* */ /* 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 ) \ : y + ( 3 * x >> 3 ) ) -#define FT_PAD_FLOOR( x, n ) ( (x) & ~((n)-1) ) + /* we use the TYPEOF macro to suppress signedness compilation warnings */ +#define FT_PAD_FLOOR( x, n ) ( (x) & ~TYPEOF( x )( (n)-1 ) ) #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_PIX_FLOOR( x ) ( (x) & ~63 ) +#define FT_PIX_FLOOR( x ) ( (x) & ~TYPEOF( x )63 ) #define FT_PIX_ROUND( x ) FT_PIX_FLOOR( (x) + 32 ) #define FT_PIX_CEIL( x ) FT_PIX_FLOOR( (x) + 63 ) @@ -404,7 +405,7 @@ FT_BEGIN_HEADER /* glyph_hints :: Format-specific glyph hints management. */ /* */ -#define FT_GLYPH_OWN_BITMAP 0x1 +#define FT_GLYPH_OWN_BITMAP 0x1U typedef struct FT_Slot_InternalRec_ { @@ -613,12 +614,12 @@ FT_BEGIN_HEADER #define FT_REQUEST_WIDTH( req ) \ ( (req)->horiResolution \ - ? (FT_Pos)( (req)->width * (req)->horiResolution + 36 ) / 72 \ + ? ( (req)->width * (FT_Pos)(req)->horiResolution + 36 ) / 72 \ : (req)->width ) #define FT_REQUEST_HEIGHT( req ) \ ( (req)->vertResolution \ - ? (FT_Pos)( (req)->height * (req)->vertResolution + 36 ) / 72 \ + ? ( (req)->height * (FT_Pos)(req)->vertResolution + 36 ) / 72 \ : (req)->height ) @@ -740,9 +741,8 @@ FT_BEGIN_HEADER /* faces_list :: The list of faces currently opened by this */ /* driver. */ /* */ - /* glyph_loader :: The glyph loader for all faces managed by this */ - /* driver. This object isn't defined for unscalable */ - /* formats. */ + /* glyph_loader :: Unused. Used to be glyph loader for all faces */ + /* managed by this driver. */ /* */ typedef struct FT_DriverRec_ { diff --git a/freetype/include/internal/ftpic.h b/freetype/include/internal/ftpic.h index 485ce7a24..7f9154f41 100644 --- a/freetype/include/internal/ftpic.h +++ b/freetype/include/internal/ftpic.h @@ -4,7 +4,7 @@ /* */ /* The FreeType position independent code services (declaration). */ /* */ -/* Copyright 2009, 2012 by */ +/* Copyright 2009-2015 by */ /* Oran Agra and Mickey Gabel. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/ftrfork.h b/freetype/include/internal/ftrfork.h index d750cbefd..da61ca75b 100644 --- a/freetype/include/internal/ftrfork.h +++ b/freetype/include/internal/ftrfork.h @@ -4,7 +4,7 @@ /* */ /* Embedded resource forks accessor (specification). */ /* */ -/* Copyright 2004, 2006, 2007, 2012, 2013 by */ +/* Copyright 2004-2015 by */ /* Masatake YAMATO and Redhat K.K. */ /* */ /* 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_ { FT_UShort res_id; - FT_ULong offset; + FT_Long offset; } FT_RFork_Ref; @@ -83,7 +83,7 @@ FT_BEGIN_HEADER /* this array is a storage in non-PIC mode, so ; is needed in END */ #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 ) \ { raccess_guess_ ## func_suffix, \ FT_RFork_Rule_ ## type_suffix }, diff --git a/freetype/include/internal/ftserv.h b/freetype/include/internal/ftserv.h index 1203ec812..8f837e475 100644 --- a/freetype/include/internal/ftserv.h +++ b/freetype/include/internal/ftserv.h @@ -4,7 +4,7 @@ /* */ /* The FreeType services (specification only). */ /* */ -/* Copyright 2003-2007, 2009, 2012, 2013 by */ +/* Copyright 2003-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -750,7 +750,7 @@ FT_BEGIN_HEADER #define FT_SERVICE_TRUETYPE_ENGINE_H <internal/services/svtteng.h> #define FT_SERVICE_TT_CMAP_H <internal/services/svttcmap.h> #define FT_SERVICE_WINFNT_H <internal/services/svwinfnt.h> -#define FT_SERVICE_XFREE86_NAME_H <internal/services/svxf86nm.h> +#define FT_SERVICE_FONT_FORMAT_H <internal/services/svfntfmt.h> #define FT_SERVICE_TRUETYPE_GLYF_H <internal/services/svttglyf.h> /* */ diff --git a/freetype/include/internal/ftstream.h b/freetype/include/internal/ftstream.h index 266185832..384e5df30 100644 --- a/freetype/include/internal/ftstream.h +++ b/freetype/include/internal/ftstream.h @@ -4,7 +4,7 @@ /* */ /* Stream handling (specification). */ /* */ -/* Copyright 1996-2002, 2004-2006, 2011, 2013 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -361,7 +361,7 @@ FT_BEGIN_HEADER FT_Long distance ); /* return current stream position */ - FT_BASE( FT_Long ) + FT_BASE( FT_ULong ) FT_Stream_Pos( FT_Stream stream ); /* read bytes from a stream into a user-allocated buffer, returns an */ diff --git a/freetype/include/internal/fttrace.h b/freetype/include/internal/fttrace.h index d5253db78..9d28d214d 100644 --- a/freetype/include/internal/fttrace.h +++ b/freetype/include/internal/fttrace.h @@ -4,7 +4,7 @@ /* */ /* Tracing handling (specification only). */ /* */ -/* Copyright 2002, 2004-2007, 2009, 2011-2014 by */ +/* Copyright 2002-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/ftvalid.h b/freetype/include/internal/ftvalid.h index c281b1424..9cda6eef5 100644 --- a/freetype/include/internal/ftvalid.h +++ b/freetype/include/internal/ftvalid.h @@ -4,7 +4,7 @@ /* */ /* FreeType validation support (specification). */ /* */ -/* Copyright 2004, 2013, 2014 by */ +/* Copyright 2004-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/internal.h b/freetype/include/internal/internal.h index e0ddb06b7..1c1fd0ee1 100644 --- a/freetype/include/internal/internal.h +++ b/freetype/include/internal/internal.h @@ -4,7 +4,7 @@ /* */ /* Internal header files (specification only). */ /* */ -/* Copyright 1996-2004, 2013 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/psaux.h b/freetype/include/internal/psaux.h index e903114f8..1c5f784f5 100644 --- a/freetype/include/internal/psaux.h +++ b/freetype/include/internal/psaux.h @@ -5,7 +5,7 @@ /* Auxiliary functions and data structures related to PostScript fonts */ /* (specification). */ /* */ -/* Copyright 1996-2004, 2006, 2008, 2009, 2012 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -71,10 +71,10 @@ FT_BEGIN_HEADER (*done)( PS_Table table ); FT_Error - (*add)( PS_Table table, - FT_Int idx, - void* object, - FT_PtrDist length ); + (*add)( PS_Table table, + FT_Int idx, + void* object, + FT_UInt length ); void (*release)( PS_Table table ); @@ -122,12 +122,12 @@ FT_BEGIN_HEADER FT_Byte* block; /* current memory block */ FT_Offset cursor; /* current cursor in memory block */ FT_Offset capacity; /* current size of memory block */ - FT_Long init; + FT_ULong init; FT_Int max_elems; FT_Int num_elems; FT_Byte** elements; /* addresses of table elements */ - FT_PtrDist* lengths; /* lengths of table elements */ + FT_UInt* lengths; /* lengths of table elements */ FT_Memory memory; PS_Table_FuncsRec funcs; @@ -365,7 +365,7 @@ FT_BEGIN_HEADER (*to_bytes)( PS_Parser parser, FT_Byte* bytes, FT_Offset max_bytes, - FT_Long* pnum_bytes, + FT_ULong* pnum_bytes, FT_Bool delimiters ); FT_Int @@ -675,9 +675,9 @@ FT_BEGIN_HEADER FT_Byte** glyph_names; FT_Int lenIV; /* internal for sub routine calls */ - FT_UInt num_subrs; + FT_Int num_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_Vector font_offset; diff --git a/freetype/include/internal/pshints.h b/freetype/include/internal/pshints.h index f05ea6863..12aaabacd 100644 --- a/freetype/include/internal/pshints.h +++ b/freetype/include/internal/pshints.h @@ -6,7 +6,7 @@ /* recorders (specification only). These are used to support native */ /* 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. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -465,7 +465,7 @@ FT_BEGIN_HEADER typedef void (*T2_Hints_StemsFunc)( T2_Hints hints, FT_UInt dimension, - FT_UInt count, + FT_Int count, FT_Fixed* coordinates ); diff --git a/freetype/include/internal/services/svbdf.h b/freetype/include/internal/services/svbdf.h index 0974752a7..865b53687 100644 --- a/freetype/include/internal/services/svbdf.h +++ b/freetype/include/internal/services/svbdf.h @@ -4,7 +4,7 @@ /* */ /* The FreeType BDF services (specification). */ /* */ -/* Copyright 2003, 2009, 2012 by */ +/* Copyright 2003-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/services/svcid.h b/freetype/include/internal/services/svcid.h index 6be3f9374..4a535a6f4 100644 --- a/freetype/include/internal/services/svcid.h +++ b/freetype/include/internal/services/svcid.h @@ -4,7 +4,8 @@ /* */ /* 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, */ /* modified, and distributed under the terms of the FreeType project */ diff --git a/freetype/include/internal/services/svxf86nm.h b/freetype/include/internal/services/svfntfmt.h index ca5d884a8..f8b361736 100644..100755 --- a/freetype/include/internal/services/svxf86nm.h +++ b/freetype/include/internal/services/svfntfmt.h @@ -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. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -16,8 +16,8 @@ /***************************************************************************/ -#ifndef __SVXF86NM_H__ -#define __SVXF86NM_H__ +#ifndef __SVFNTFMT_H__ +#define __SVFNTFMT_H__ #include FT_INTERNAL_SERVICE_H @@ -31,17 +31,17 @@ FT_BEGIN_HEADER * 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_XF86_FORMAT_TYPE_1 "Type 1" -#define FT_XF86_FORMAT_BDF "BDF" -#define FT_XF86_FORMAT_PCF "PCF" -#define FT_XF86_FORMAT_TYPE_42 "Type 42" -#define FT_XF86_FORMAT_CID "CID Type 1" -#define FT_XF86_FORMAT_CFF "CFF" -#define FT_XF86_FORMAT_PFR "PFR" -#define FT_XF86_FORMAT_WINFNT "Windows FNT" +#define FT_FONT_FORMAT_TRUETYPE "TrueType" +#define FT_FONT_FORMAT_TYPE_1 "Type 1" +#define FT_FONT_FORMAT_BDF "BDF" +#define FT_FONT_FORMAT_PCF "PCF" +#define FT_FONT_FORMAT_TYPE_42 "Type 42" +#define FT_FONT_FORMAT_CID "CID Type 1" +#define FT_FONT_FORMAT_CFF "CFF" +#define FT_FONT_FORMAT_PFR "PFR" +#define FT_FONT_FORMAT_WINFNT "Windows FNT" /* */ @@ -49,7 +49,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* __SVXF86NM_H__ */ +#endif /* __SVFNTFMT_H__ */ /* END */ diff --git a/freetype/include/internal/services/svgldict.h b/freetype/include/internal/services/svgldict.h index 1d1253472..f78bca5d7 100644 --- a/freetype/include/internal/services/svgldict.h +++ b/freetype/include/internal/services/svgldict.h @@ -4,7 +4,7 @@ /* */ /* The FreeType glyph dictionary services (specification). */ /* */ -/* Copyright 2003, 2009, 2012 by */ +/* Copyright 2003-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/services/svgxval.h b/freetype/include/internal/services/svgxval.h index 2cdab5065..59cc3b704 100644 --- a/freetype/include/internal/services/svgxval.h +++ b/freetype/include/internal/services/svgxval.h @@ -4,7 +4,7 @@ /* */ /* FreeType API for validating TrueTypeGX/AAT tables (specification). */ /* */ -/* Copyright 2004, 2005 by */ +/* Copyright 2004-2015 by */ /* Masatake YAMATO, Red Hat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ diff --git a/freetype/include/internal/services/svkern.h b/freetype/include/internal/services/svkern.h index 1488adf49..bc26f1594 100644 --- a/freetype/include/internal/services/svkern.h +++ b/freetype/include/internal/services/svkern.h @@ -4,7 +4,7 @@ /* */ /* The FreeType Kerning service (specification). */ /* */ -/* Copyright 2006 by */ +/* Copyright 2006-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/services/svmm.h b/freetype/include/internal/services/svmm.h index b08a663d6..f2cecfbb3 100644 --- a/freetype/include/internal/services/svmm.h +++ b/freetype/include/internal/services/svmm.h @@ -4,7 +4,7 @@ /* */ /* 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. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/services/svotval.h b/freetype/include/internal/services/svotval.h index 970bbd575..a82a6420f 100644 --- a/freetype/include/internal/services/svotval.h +++ b/freetype/include/internal/services/svotval.h @@ -4,7 +4,7 @@ /* */ /* The FreeType OpenType validation service (specification). */ /* */ -/* Copyright 2004, 2006 by */ +/* Copyright 2004-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/services/svpfr.h b/freetype/include/internal/services/svpfr.h index 462786f9c..d4eb1693d 100644 --- a/freetype/include/internal/services/svpfr.h +++ b/freetype/include/internal/services/svpfr.h @@ -4,7 +4,7 @@ /* */ /* Internal PFR service functions (specification). */ /* */ -/* Copyright 2003, 2006 by */ +/* Copyright 2003-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/services/svpostnm.h b/freetype/include/internal/services/svpostnm.h index a76b4fe05..a89f79e47 100644 --- a/freetype/include/internal/services/svpostnm.h +++ b/freetype/include/internal/services/svpostnm.h @@ -4,7 +4,7 @@ /* */ /* The FreeType PostScript name services (specification). */ /* */ -/* Copyright 2003, 2007, 2009, 2012 by */ +/* Copyright 2003-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/services/svprop.h b/freetype/include/internal/services/svprop.h index 22da0bbc6..c9f07ce33 100644 --- a/freetype/include/internal/services/svprop.h +++ b/freetype/include/internal/services/svprop.h @@ -4,7 +4,7 @@ /* */ /* The FreeType property service (specification). */ /* */ -/* Copyright 2012 by */ +/* Copyright 2012-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/services/svpscmap.h b/freetype/include/internal/services/svpscmap.h index 030948ea6..66da6e104 100644 --- a/freetype/include/internal/services/svpscmap.h +++ b/freetype/include/internal/services/svpscmap.h @@ -4,7 +4,7 @@ /* */ /* The FreeType PostScript charmap service (specification). */ /* */ -/* Copyright 2003, 2006, 2009, 2012 by */ +/* Copyright 2003-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/services/svpsinfo.h b/freetype/include/internal/services/svpsinfo.h index 4bfb50671..752a26602 100644 --- a/freetype/include/internal/services/svpsinfo.h +++ b/freetype/include/internal/services/svpsinfo.h @@ -4,7 +4,7 @@ /* */ /* The FreeType PostScript info service (specification). */ /* */ -/* Copyright 2003, 2004, 2009, 2011, 2012 by */ +/* Copyright 2003-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/services/svsfnt.h b/freetype/include/internal/services/svsfnt.h index d3835aa1c..252ae1cf5 100644 --- a/freetype/include/internal/services/svsfnt.h +++ b/freetype/include/internal/services/svsfnt.h @@ -4,7 +4,7 @@ /* */ /* The FreeType SFNT table loading service (specification). */ /* */ -/* Copyright 2003, 2004, 2009, 2012 by */ +/* Copyright 2003-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/services/svttcmap.h b/freetype/include/internal/services/svttcmap.h index 4370f4c2d..4351a9ae0 100644 --- a/freetype/include/internal/services/svttcmap.h +++ b/freetype/include/internal/services/svttcmap.h @@ -4,10 +4,8 @@ /* */ /* The FreeType TrueType/sfnt cmap extra information service. */ /* */ -/* Copyright 2003 by */ -/* Masatake YAMATO, Redhat K.K. */ -/* */ -/* Copyright 2003, 2008, 2009, 2012, 2013 by */ +/* Copyright 2003-2015 by */ +/* Masatake YAMATO, Redhat K.K., */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/services/svtteng.h b/freetype/include/internal/services/svtteng.h index 58e02a6f9..272ee8c05 100644 --- a/freetype/include/internal/services/svtteng.h +++ b/freetype/include/internal/services/svtteng.h @@ -4,7 +4,7 @@ /* */ /* The FreeType TrueType engine query service (specification). */ /* */ -/* Copyright 2006 by */ +/* Copyright 2006-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/services/svttglyf.h b/freetype/include/internal/services/svttglyf.h index 369eb8421..f5cb76a9f 100644 --- a/freetype/include/internal/services/svttglyf.h +++ b/freetype/include/internal/services/svttglyf.h @@ -4,7 +4,8 @@ /* */ /* 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, */ /* modified, and distributed under the terms of the FreeType project */ diff --git a/freetype/include/internal/services/svwinfnt.h b/freetype/include/internal/services/svwinfnt.h index 57f7765d9..0036929b2 100644 --- a/freetype/include/internal/services/svwinfnt.h +++ b/freetype/include/internal/services/svwinfnt.h @@ -4,7 +4,7 @@ /* */ /* The FreeType Windows FNT/FONT service (specification). */ /* */ -/* Copyright 2003 by */ +/* Copyright 2003-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/sfnt.h b/freetype/include/internal/sfnt.h index d558e869b..97ce390c3 100644 --- a/freetype/include/internal/sfnt.h +++ b/freetype/include/internal/sfnt.h @@ -4,7 +4,7 @@ /* */ /* High-level `sfnt' driver interface (specification). */ /* */ -/* Copyright 1996-2006, 2009, 2012-2014 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/internal/t1types.h b/freetype/include/internal/t1types.h index e20237c14..029acc400 100644 --- a/freetype/include/internal/t1types.h +++ b/freetype/include/internal/t1types.h @@ -5,7 +5,7 @@ /* Basic Type1/Type2 type definitions and interface (specification */ /* only). */ /* */ -/* Copyright 1996-2004, 2006, 2008, 2009, 2011, 2013 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* 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_Byte** subrs; - FT_PtrDist* subrs_len; + FT_UInt* subrs_len; FT_Int num_glyphs; FT_String** glyph_names; /* array of glyph names */ FT_Byte** charstrings; /* array of glyph charstrings */ - FT_PtrDist* charstrings_len; + FT_UInt* charstrings_len; FT_Byte paint_type; FT_Byte font_type; @@ -127,7 +127,7 @@ FT_BEGIN_HEADER typedef struct CID_SubrsRec_ { - FT_UInt num_subrs; + FT_Int num_subrs; FT_Byte** code; } CID_SubrsRec, *CID_Subrs; @@ -157,10 +157,10 @@ FT_BEGIN_HEADER typedef struct AFM_KernPairRec_ { - FT_Int index1; - FT_Int index2; - FT_Int x; - FT_Int y; + FT_UInt index1; + FT_UInt index2; + FT_Int x; + FT_Int y; } AFM_KernPairRec, *AFM_KernPair; @@ -171,9 +171,9 @@ FT_BEGIN_HEADER FT_Fixed Ascender; FT_Fixed Descender; AFM_TrackKern TrackKerns; /* free if non-NULL */ - FT_Int NumTrackKern; + FT_UInt NumTrackKern; AFM_KernPair KernPairs; /* free if non-NULL */ - FT_Int NumKernPair; + FT_UInt NumKernPair; } AFM_FontInfoRec, *AFM_FontInfo; diff --git a/freetype/include/internal/tttypes.h b/freetype/include/internal/tttypes.h index ad302b87c..31dd0aac6 100644 --- a/freetype/include/internal/tttypes.h +++ b/freetype/include/internal/tttypes.h @@ -5,7 +5,7 @@ /* Basic SFNT/TrueType type definitions and interface (specification */ /* only). */ /* */ -/* Copyright 1996-2002, 2004-2008, 2012-2013 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* 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). */ /* For details, please see */ /* */ - /* http://fonts.apple.com/ */ - /* TTRefMan/RM06/Chap6bloc.html */ + /* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6bloc.html */ /* */ /* hori :: The line metrics for horizontal layouts. */ /* */ @@ -635,8 +634,7 @@ FT_BEGIN_HEADER /* flags :: Is this a vertical or horizontal strike? For */ /* details, please see */ /* */ - /* http://fonts.apple.com/ */ - /* TTRefMan/RM06/Chap6bloc.html */ + /* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6bloc.html */ /* */ typedef struct TT_SBit_StrikeRec_ { @@ -1113,7 +1111,7 @@ FT_BEGIN_HEADER /* This field also contains the associated */ /* vertical metrics table (`vmtx'), if found. */ /* IMPORTANT: The contents of this field is */ - /* undefined if the `verticalInfo' field is */ + /* undefined if the `vertical_info' field is */ /* unset. */ /* */ /* num_names :: The number of name records within this */ @@ -1440,7 +1438,7 @@ FT_BEGIN_HEADER { FT_Memory memory; FT_UShort max_points; - FT_UShort max_contours; + FT_Short max_contours; FT_UShort n_points; /* number of points in zone */ FT_Short n_contours; /* number of contours */ diff --git a/freetype/include/t1tables.h b/freetype/include/t1tables.h index 61aefdd54..a6ea415af 100644 --- a/freetype/include/t1tables.h +++ b/freetype/include/t1tables.h @@ -5,7 +5,7 @@ /* Basic Type 1/Type 2 tables definitions and interface (specification */ /* only). */ /* */ -/* Copyright 1996-2004, 2006, 2008, 2009, 2011, 2014 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* 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. * * @note: - * The string pointers within the font info structure are owned by - * the face and don't need to be freed by the caller. + * String pointers within the @PS_FontInfoRec structure are owned by + * 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 * return the `FT_Err_Invalid_Argument' error code. diff --git a/freetype/include/ttnameid.h b/freetype/include/ttnameid.h index e65b55812..c9585f241 100644 --- a/freetype/include/ttnameid.h +++ b/freetype/include/ttnameid.h @@ -4,7 +4,7 @@ /* */ /* 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. */ /* */ /* 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 */ /* */ - /* 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_FRENCH 1 diff --git a/freetype/include/tttables.h b/freetype/include/tttables.h index e1d8b05e7..1568f4036 100644 --- a/freetype/include/tttables.h +++ b/freetype/include/tttables.h @@ -5,7 +5,7 @@ /* Basic SFNT/TrueType tables definitions and interface */ /* (specification only). */ /* */ -/* Copyright 1996-2005, 2008-2014 by */ +/* Copyright 1996-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -371,7 +371,7 @@ FT_BEGIN_HEADER FT_Short xAvgCharWidth; FT_UShort usWeightClass; FT_UShort usWidthClass; - FT_Short fsType; + FT_UShort fsType; FT_Short ySubscriptXSize; FT_Short ySubscriptYSize; FT_Short ySubscriptXOffset; diff --git a/freetype/include/tttags.h b/freetype/include/tttags.h index d59aa19a3..3836c7bbf 100644 --- a/freetype/include/tttags.h +++ b/freetype/include/tttags.h @@ -4,7 +4,7 @@ /* */ /* 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. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/freetype/include/ttunpat.h b/freetype/include/ttunpat.h index bf53ddd52..8ea556895 100644 --- a/freetype/include/ttunpat.h +++ b/freetype/include/ttunpat.h @@ -4,7 +4,7 @@ /* */ /* Definitions for the unpatented TrueType hinting system */ /* */ -/* Copyright 2003, 2006 by */ +/* Copyright 2003-2015 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* Written by Graham Asher <graham.asher@btinternet.com> */ |