8306881: Update FreeType to 2.13.0

Reviewed-by: prr, dnguyen
This commit is contained in:
Alisen Chung
2023-05-09 19:30:50 +00:00
parent 98294242a9
commit 723582c524
283 changed files with 2921 additions and 2001 deletions

View File

@@ -1,4 +1,4 @@
## The FreeType Project: Freetype v2.12.1 ## The FreeType Project: Freetype v2.13.0
### FreeType Notice ### FreeType Notice
@@ -21,27 +21,26 @@ which fits your needs best.
### FreeType License ### FreeType License
``` ```
Copyright (C) 1996-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. Copyright (C) 1996-2023 by David Turner, Robert Wilhelm, and Werner Lemberg.
Copyright (C) 2007-2022 by Dereg Clegg and Michael Toftdal. Copyright (C) 2007-2023 by Dereg Clegg and Michael Toftdal.
Copyright (C) 1996-2022 by Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. Copyright (C) 1996-2023 by Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg.
Copyright (C) 2004-2022 by Masatake YAMATO and Redhat K.K. Copyright (C) 2022-2023 by David Turner, Robert Wilhelm, Werner Lemberg, George Williams, and
Copyright (C) 2007-2022 by Derek Clegg and Michael Toftdal. Copyright (C) 2004-2023 by Masatake YAMATO and Redhat K.K.
Copyright (C) 2007-2022 by David Turner. Copyright (C) 2007-2023 by Derek Clegg and Michael Toftdal.
Copyright (C) 2022 by David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti. Copyright (C) 2003-2023 by Masatake YAMATO, Red Hat K.K.,
Copyright (C) 2007-2022 by Rahul Bhalerao <rahul.bhalerao@redhat.com>, <b.rahul.pm@gmail.com>. Copyright (C) 1996-2023 by David Turner, Robert Wilhelm, Werner Lemberg, and Dominik Röttsches.
Copyright (C) 2008-2022 by David Turner, Robert Wilhelm, Werner Lemberg, and suzuki toshiya. Copyright (C) 2007-2023 by David Turner.
Copyright (C) 2019-2022 by Nikhil Ramakrishnan, David Turner, Robert Wilhelm, and Werner Lemberg. Copyright (C) 2022-2023 by David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti.
Copyright (C) 2009-2022 by Oran Agra and Mickey Gabel. Copyright (C) 2007-2023 by Rahul Bhalerao <rahul.bhalerao@redhat.com>, <b.rahul.pm@gmail.com>.
Copyright (C) 2004-2022 by David Turner, Robert Wilhelm, Werner Lemberg, and George Williams. Copyright (C) 2008-2023 by David Turner, Robert Wilhelm, Werner Lemberg, and suzuki toshiya.
Copyright (C) 2004-2022 by Masatake YAMATO, Red Hat K.K., Copyright (C) 2013-2023 by Google, Inc.
Copyright (C) 2003-2022 by Masatake YAMATO, Redhat K.K., Copyright (C) 2019-2023 by Nikhil Ramakrishnan, David Turner, Robert Wilhelm, and Werner Lemberg.
Copyright (C) 2013-2022 by Google, Inc. Copyright (C) 2009-2023 by Oran Agra and Mickey Gabel.
Copyright (C) 2018-2022 by David Turner, Robert Wilhelm, Dominik Röttsches, and Werner Lemberg. Copyright (C) 2018-2023 by David Turner, Robert Wilhelm, Dominik Röttsches, and Werner Lemberg.
Copyright (C) 2005-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. Copyright (C) 2004-2023 by David Turner, Robert Wilhelm, Werner Lemberg, and George Williams.
Copyright 2013 by Google, Inc.
The FreeType Project LICENSE The FreeType Project LICENSE
---------------------------- ----------------------------
2006-Jan-27 2006-Jan-27
@@ -206,7 +205,7 @@ Legal Terms
Our home page can be found at Our home page can be found at
http://www.freetype.org https://www.freetype.org
``` ```

View File

@@ -4,7 +4,7 @@
* *
* ANSI-specific configuration file (specification only). * ANSI-specific configuration file (specification only).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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 @@
* *
* Build macros of the FreeType 2 library. * Build macros of the FreeType 2 library.
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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 @@
* *
* User-selectable configuration macros (specification only). * User-selectable configuration macros (specification only).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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,
@@ -461,9 +461,9 @@ FT_BEGIN_HEADER
* while compiling in 'release' mode): * while compiling in 'release' mode):
* *
* ``` * ```
* _af_debug_disable_horz_hints * af_debug_disable_horz_hints_
* _af_debug_disable_vert_hints * af_debug_disable_vert_hints_
* _af_debug_disable_blue_hints * af_debug_disable_blue_hints_
* ``` * ```
* *
* Additionally, the following functions provide dumps of various * Additionally, the following functions provide dumps of various
@@ -480,7 +480,7 @@ FT_BEGIN_HEADER
* As an argument, they use another global variable: * As an argument, they use another global variable:
* *
* ``` * ```
* _af_debug_hints * af_debug_hints_
* ``` * ```
* *
* Please have a look at the `ftgrid` demo program to see how those * Please have a look at the `ftgrid` demo program to see how those
@@ -584,12 +584,12 @@ FT_BEGIN_HEADER
/************************************************************************** /**************************************************************************
* *
* Define `TT_CONFIG_OPTION_POSTSCRIPT_NAMES` if you want to be able to * Define `TT_CONFIG_OPTION_POSTSCRIPT_NAMES` if you want to be able to
* load and enumerate the glyph Postscript names in a TrueType or OpenType * load and enumerate Postscript names of glyphs in a TrueType or OpenType
* file. * file.
* *
* Note that when you do not compile the 'psnames' module by undefining the * Note that if you do not compile the 'psnames' module by undefining the
* above `FT_CONFIG_OPTION_POSTSCRIPT_NAMES`, the 'sfnt' module will * above `FT_CONFIG_OPTION_POSTSCRIPT_NAMES` macro, the 'sfnt' module will
* contain additional code used to read the PS Names table from a font. * contain additional code to read the PostScript name table from a font.
* *
* (By default, the module uses 'psnames' to extract glyph names.) * (By default, the module uses 'psnames' to extract glyph names.)
*/ */
@@ -739,6 +739,24 @@ FT_BEGIN_HEADER
#define TT_CONFIG_OPTION_GX_VAR_SUPPORT #define TT_CONFIG_OPTION_GX_VAR_SUPPORT
/**************************************************************************
*
* Define `TT_CONFIG_OPTION_NO_BORING_EXPANSION` if you want to exclude
* support for 'boring' OpenType specification expansions.
*
* https://github.com/harfbuzz/boring-expansion-spec
*
* Right now, the following features are covered:
*
* - 'avar' version 2.0
*
* Most likely, this is a temporary configuration option to be removed in
* the near future, since it is assumed that eventually those features are
* added to the OpenType standard.
*/
/* #define TT_CONFIG_OPTION_NO_BORING_EXPANSION */
/************************************************************************** /**************************************************************************
* *
* Define `TT_CONFIG_OPTION_BDF` if you want to include support for an * Define `TT_CONFIG_OPTION_BDF` if you want to include support for an

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 (C) 2002-2022 by * Copyright (C) 2002-2023 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 integer types definitions. * FreeType integer types definitions.
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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 @@
* *
* Mac/OS X support configuration header. * Mac/OS X support configuration header.
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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 @@
* *
* Define a set of compiler macros used in public FreeType headers. * Define a set of compiler macros used in public FreeType headers.
* *
* Copyright (C) 2020-2022 by * Copyright (C) 2020-2023 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 high-level API and common types (specification only). * FreeType high-level API and common types (specification only).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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,7 +215,6 @@ FT_BEGIN_HEADER
* FT_Get_Char_Index * FT_Get_Char_Index
* FT_Get_First_Char * FT_Get_First_Char
* FT_Get_Next_Char * FT_Get_Next_Char
* FT_Get_Name_Index
* FT_Load_Char * FT_Load_Char
* *
* FT_OPEN_MEMORY * FT_OPEN_MEMORY
@@ -254,14 +253,15 @@ FT_BEGIN_HEADER
* FT_Get_Kerning * FT_Get_Kerning
* FT_Kerning_Mode * FT_Kerning_Mode
* FT_Get_Track_Kerning * FT_Get_Track_Kerning
* FT_Get_Glyph_Name
* FT_Get_Postscript_Name
* *
* FT_CharMapRec * FT_CharMapRec
* FT_Select_Charmap * FT_Select_Charmap
* FT_Set_Charmap * FT_Set_Charmap
* FT_Get_Charmap_Index * FT_Get_Charmap_Index
* *
* FT_Get_Name_Index
* FT_Get_Glyph_Name
* FT_Get_Postscript_Name
* FT_Get_FSType_Flags * FT_Get_FSType_Flags
* FT_Get_SubGlyph_Info * FT_Get_SubGlyph_Info
* *
@@ -646,7 +646,7 @@ FT_BEGIN_HEADER
* *
* @note: * @note:
* Despite the name, this enumeration lists specific character * Despite the name, this enumeration lists specific character
* repertories (i.e., charsets), and not text encoding methods (e.g., * repertoires (i.e., charsets), and not text encoding methods (e.g.,
* UTF-8, UTF-16, etc.). * UTF-8, UTF-16, etc.).
* *
* Other encodings might be defined in the future. * Other encodings might be defined in the future.
@@ -779,7 +779,7 @@ FT_BEGIN_HEADER
* `encoding_id`. If, for example, `encoding_id` is `TT_MAC_ID_ROMAN` * `encoding_id`. If, for example, `encoding_id` is `TT_MAC_ID_ROMAN`
* and the language ID (minus~1) is `TT_MAC_LANGID_GREEK`, it is the * and the language ID (minus~1) is `TT_MAC_LANGID_GREEK`, it is the
* Greek encoding, not Roman. `TT_MAC_ID_ARABIC` with * Greek encoding, not Roman. `TT_MAC_ID_ARABIC` with
* `TT_MAC_LANGID_FARSI` means the Farsi variant the Arabic encoding. * `TT_MAC_LANGID_FARSI` means the Farsi variant of the Arabic encoding.
*/ */
typedef enum FT_Encoding_ typedef enum FT_Encoding_
{ {
@@ -1167,9 +1167,9 @@ FT_BEGIN_HEADER
* FT_FACE_FLAG_KERNING :: * FT_FACE_FLAG_KERNING ::
* The face contains kerning information. If set, the kerning distance * The face contains kerning information. If set, the kerning distance
* can be retrieved using the function @FT_Get_Kerning. Otherwise the * can be retrieved using the function @FT_Get_Kerning. Otherwise the
* function always return the vector (0,0). Note that FreeType doesn't * function always returns the vector (0,0). Note that FreeType
* handle kerning data from the SFNT 'GPOS' table (as present in many * doesn't handle kerning data from the SFNT 'GPOS' table (as present
* OpenType fonts). * in many OpenType fonts).
* *
* FT_FACE_FLAG_FAST_GLYPHS :: * FT_FACE_FLAG_FAST_GLYPHS ::
* THIS FLAG IS DEPRECATED. DO NOT USE OR TEST IT. * THIS FLAG IS DEPRECATED. DO NOT USE OR TEST IT.
@@ -1892,13 +1892,13 @@ FT_BEGIN_HEADER
* The advance width of the unhinted glyph. Its value is expressed in * The advance width of the unhinted glyph. Its value is expressed in
* 16.16 fractional pixels, unless @FT_LOAD_LINEAR_DESIGN is set when * 16.16 fractional pixels, unless @FT_LOAD_LINEAR_DESIGN is set when
* loading the glyph. This field can be important to perform correct * loading the glyph. This field can be important to perform correct
* WYSIWYG layout. Only relevant for outline glyphs. * WYSIWYG layout. Only relevant for scalable glyphs.
* *
* linearVertAdvance :: * linearVertAdvance ::
* The advance height of the unhinted glyph. Its value is expressed in * The advance height of the unhinted glyph. Its value is expressed in
* 16.16 fractional pixels, unless @FT_LOAD_LINEAR_DESIGN is set when * 16.16 fractional pixels, unless @FT_LOAD_LINEAR_DESIGN is set when
* loading the glyph. This field can be important to perform correct * loading the glyph. This field can be important to perform correct
* WYSIWYG layout. Only relevant for outline glyphs. * WYSIWYG layout. Only relevant for scalable glyphs.
* *
* advance :: * advance ::
* This shorthand is, depending on @FT_LOAD_IGNORE_TRANSFORM, the * This shorthand is, depending on @FT_LOAD_IGNORE_TRANSFORM, the
@@ -2593,8 +2593,8 @@ FT_BEGIN_HEADER
* stream attachments. * stream attachments.
*/ */
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Attach_Stream( FT_Face face, FT_Attach_Stream( FT_Face face,
FT_Open_Args* parameters ); const FT_Open_Args* parameters );
/************************************************************************** /**************************************************************************
@@ -3077,7 +3077,7 @@ FT_BEGIN_HEADER
* *
* FT_LOAD_NO_HINTING :: * FT_LOAD_NO_HINTING ::
* Disable hinting. This generally generates 'blurrier' bitmap glyphs * Disable hinting. This generally generates 'blurrier' bitmap glyphs
* when the glyph are rendered in any of the anti-aliased modes. See * when the glyphs are rendered in any of the anti-aliased modes. See
* also the note below. * also the note below.
* *
* This flag is implied by @FT_LOAD_NO_SCALE. * This flag is implied by @FT_LOAD_NO_SCALE.
@@ -3434,7 +3434,7 @@ FT_BEGIN_HEADER
* are not interested in the value. * are not interested in the value.
* *
* delta :: * delta ::
* A pointer a translation vector. Set this to NULL if you are not * A pointer to a translation vector. Set this to NULL if you are not
* interested in the value. * interested in the value.
* *
* @since: * @since:
@@ -3559,9 +3559,10 @@ FT_BEGIN_HEADER
* *
* 2. The `sdf` rasterizer has limited support for handling intersecting * 2. The `sdf` rasterizer has limited support for handling intersecting
* contours and *cannot* handle self-intersecting contours whatsoever. * contours and *cannot* handle self-intersecting contours whatsoever.
* Self-intersection happens when a single connected contour intersect * Self-intersection happens when a single connected contour
* itself at some point; having these in your font definitely pose a * intersects itself at some point; having these in your font
* problem to the rasterizer and cause artifacts, too. * definitely poses a problem to the rasterizer and cause artifacts,
* too.
* *
* 3. Generating SDF for really small glyphs may result in undesirable * 3. Generating SDF for really small glyphs may result in undesirable
* output; the pixel grid (which stores distance information) becomes * output; the pixel grid (which stores distance information) becomes
@@ -3840,89 +3841,6 @@ FT_BEGIN_HEADER
FT_Fixed* akerning ); FT_Fixed* akerning );
/**************************************************************************
*
* @function:
* FT_Get_Glyph_Name
*
* @description:
* Retrieve the ASCII name of a given glyph in a face. This only works
* for those faces where @FT_HAS_GLYPH_NAMES(face) returns~1.
*
* @input:
* face ::
* A handle to a source face object.
*
* glyph_index ::
* The glyph index.
*
* buffer_max ::
* The maximum number of bytes available in the buffer.
*
* @output:
* buffer ::
* A pointer to a target buffer where the name is copied to.
*
* @return:
* FreeType error code. 0~means success.
*
* @note:
* An error is returned if the face doesn't provide glyph names or if the
* glyph index is invalid. In all cases of failure, the first byte of
* `buffer` is set to~0 to indicate an empty name.
*
* The glyph name is truncated to fit within the buffer if it is too
* long. The returned string is always zero-terminated.
*
* Be aware that FreeType reorders glyph indices internally so that glyph
* index~0 always corresponds to the 'missing glyph' (called '.notdef').
*
* This function always returns an error if the config macro
* `FT_CONFIG_OPTION_NO_GLYPH_NAMES` is not defined in `ftoption.h`.
*/
FT_EXPORT( FT_Error )
FT_Get_Glyph_Name( FT_Face face,
FT_UInt glyph_index,
FT_Pointer buffer,
FT_UInt buffer_max );
/**************************************************************************
*
* @function:
* FT_Get_Postscript_Name
*
* @description:
* Retrieve the ASCII PostScript name of a given face, if available.
* This only works with PostScript, TrueType, and OpenType fonts.
*
* @input:
* face ::
* A handle to the source face object.
*
* @return:
* A pointer to the face's PostScript name. `NULL` if unavailable.
*
* @note:
* The returned pointer is owned by the face and is destroyed with it.
*
* For variation fonts, this string changes if you select a different
* instance, and you have to call `FT_Get_PostScript_Name` again to
* retrieve it. FreeType follows Adobe TechNote #5902, 'Generating
* PostScript Names for Fonts Using OpenType Font Variations'.
*
* https://download.macromedia.com/pub/developer/opentype/tech-notes/5902.AdobePSNameGeneration.html
*
* [Since 2.9] Special PostScript names for named instances are only
* returned if the named instance is set with @FT_Set_Named_Instance (and
* the font has corresponding entries in its 'fvar' table). If
* @FT_IS_VARIATION returns true, the algorithmically derived PostScript
* name is provided, not looking up special entries for named instances.
*/
FT_EXPORT( const char* )
FT_Get_Postscript_Name( FT_Face face );
/************************************************************************** /**************************************************************************
* *
* @function: * @function:
@@ -4243,7 +4161,8 @@ FT_BEGIN_HEADER
* FT_Get_Name_Index * FT_Get_Name_Index
* *
* @description: * @description:
* Return the glyph index of a given glyph name. * Return the glyph index of a given glyph name. This only works
* for those faces where @FT_HAS_GLYPH_NAMES returns true.
* *
* @input: * @input:
* face :: * face ::
@@ -4254,12 +4173,107 @@ FT_BEGIN_HEADER
* *
* @return: * @return:
* The glyph index. 0~means 'undefined character code'. * The glyph index. 0~means 'undefined character code'.
*
* @note:
* Acceptable glyph names might come from the [Adobe Glyph
* List](https://github.com/adobe-type-tools/agl-aglfn). See
* @FT_Get_Glyph_Name for the inverse functionality.
*
* This function has limited capabilities if the config macro
* `FT_CONFIG_OPTION_POSTSCRIPT_NAMES` is not defined in `ftoption.h`:
* It then works only for fonts that actually embed glyph names (which
* many recent OpenType fonts do not).
*/ */
FT_EXPORT( FT_UInt ) FT_EXPORT( FT_UInt )
FT_Get_Name_Index( FT_Face face, FT_Get_Name_Index( FT_Face face,
const FT_String* glyph_name ); const FT_String* glyph_name );
/**************************************************************************
*
* @function:
* FT_Get_Glyph_Name
*
* @description:
* Retrieve the ASCII name of a given glyph in a face. This only works
* for those faces where @FT_HAS_GLYPH_NAMES returns true.
*
* @input:
* face ::
* A handle to a source face object.
*
* glyph_index ::
* The glyph index.
*
* buffer_max ::
* The maximum number of bytes available in the buffer.
*
* @output:
* buffer ::
* A pointer to a target buffer where the name is copied to.
*
* @return:
* FreeType error code. 0~means success.
*
* @note:
* An error is returned if the face doesn't provide glyph names or if the
* glyph index is invalid. In all cases of failure, the first byte of
* `buffer` is set to~0 to indicate an empty name.
*
* The glyph name is truncated to fit within the buffer if it is too
* long. The returned string is always zero-terminated.
*
* Be aware that FreeType reorders glyph indices internally so that glyph
* index~0 always corresponds to the 'missing glyph' (called '.notdef').
*
* This function has limited capabilities if the config macro
* `FT_CONFIG_OPTION_POSTSCRIPT_NAMES` is not defined in `ftoption.h`:
* It then works only for fonts that actually embed glyph names (which
* many recent OpenType fonts do not).
*/
FT_EXPORT( FT_Error )
FT_Get_Glyph_Name( FT_Face face,
FT_UInt glyph_index,
FT_Pointer buffer,
FT_UInt buffer_max );
/**************************************************************************
*
* @function:
* FT_Get_Postscript_Name
*
* @description:
* Retrieve the ASCII PostScript name of a given face, if available.
* This only works with PostScript, TrueType, and OpenType fonts.
*
* @input:
* face ::
* A handle to the source face object.
*
* @return:
* A pointer to the face's PostScript name. `NULL` if unavailable.
*
* @note:
* The returned pointer is owned by the face and is destroyed with it.
*
* For variation fonts, this string changes if you select a different
* instance, and you have to call `FT_Get_PostScript_Name` again to
* retrieve it. FreeType follows Adobe TechNote #5902, 'Generating
* PostScript Names for Fonts Using OpenType Font Variations'.
*
* https://download.macromedia.com/pub/developer/opentype/tech-notes/5902.AdobePSNameGeneration.html
*
* [Since 2.9] Special PostScript names for named instances are only
* returned if the named instance is set with @FT_Set_Named_Instance (and
* the font has corresponding entries in its 'fvar' table). If
* @FT_IS_VARIATION returns true, the algorithmically derived PostScript
* name is provided, not looking up special entries for named instances.
*/
FT_EXPORT( const char* )
FT_Get_Postscript_Name( FT_Face face );
/************************************************************************** /**************************************************************************
* *
* @enum: * @enum:
@@ -4346,13 +4360,6 @@ FT_BEGIN_HEADER
FT_Matrix *p_transform ); FT_Matrix *p_transform );
/**************************************************************************
*
* @section:
* base_interface
*
*/
/************************************************************************** /**************************************************************************
* *
* @enum: * @enum:
@@ -4688,7 +4695,8 @@ FT_BEGIN_HEADER
* *
* @description: * @description:
* This section contains various functions used to perform computations * This section contains various functions used to perform computations
* on 16.16 fixed-float numbers or 2d vectors. * on 16.16 fixed-point numbers or 2D vectors. FreeType does not use
* floating-point data types.
* *
* **Attention**: Most arithmetic functions take `FT_Long` as arguments. * **Attention**: Most arithmetic functions take `FT_Long` as arguments.
* For historical reasons, FreeType was designed under the assumption * For historical reasons, FreeType was designed under the assumption
@@ -4941,8 +4949,8 @@ FT_BEGIN_HEADER
* *
*/ */
#define FREETYPE_MAJOR 2 #define FREETYPE_MAJOR 2
#define FREETYPE_MINOR 12 #define FREETYPE_MINOR 13
#define FREETYPE_PATCH 1 #define FREETYPE_PATCH 0
/************************************************************************** /**************************************************************************

View File

@@ -4,7 +4,7 @@
* *
* Quick computation of advance widths (specification only). * Quick computation of advance widths (specification only).
* *
* Copyright (C) 2008-2022 by * Copyright (C) 2008-2023 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 exact bbox computation (specification). * FreeType exact bbox computation (specification).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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 (C) 2002-2022 by * Copyright (C) 2002-2023 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 (C) 2004-2022 by * Copyright (C) 2004-2023 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 CID font information (specification). * FreeType API for accessing CID font information (specification).
* *
* Copyright (C) 2007-2022 by * Copyright (C) 2007-2023 by
* Dereg Clegg and Michael Toftdal. * 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,

View File

@@ -4,7 +4,7 @@
* *
* FreeType's glyph color management (specification). * FreeType's glyph color management (specification).
* *
* Copyright (C) 2018-2022 by * Copyright (C) 2018-2023 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,
@@ -456,6 +456,9 @@ FT_BEGIN_HEADER
* &iterator ) ); * &iterator ) );
* } * }
* ``` * ```
*
* @since:
* 2.10
*/ */
FT_EXPORT( FT_Bool ) FT_EXPORT( FT_Bool )
FT_Get_Color_Glyph_Layer( FT_Face face, FT_Get_Color_Glyph_Layer( FT_Face face,
@@ -475,7 +478,7 @@ FT_BEGIN_HEADER
* extensions to the 'COLR' table, see * extensions to the 'COLR' table, see
* 'https://github.com/googlefonts/colr-gradients-spec'. * 'https://github.com/googlefonts/colr-gradients-spec'.
* *
* The enumeration values losely correspond with the format numbers of * The enumeration values loosely correspond with the format numbers of
* the specification: FreeType always returns a fully specified 'Paint' * the specification: FreeType always returns a fully specified 'Paint'
* structure for the 'Transform', 'Translate', 'Scale', 'Rotate', and * structure for the 'Transform', 'Translate', 'Scale', 'Rotate', and
* 'Skew' table types even though the specification has different formats * 'Skew' table types even though the specification has different formats
@@ -489,9 +492,7 @@ FT_BEGIN_HEADER
* structures. * structures.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef enum FT_PaintFormat_ typedef enum FT_PaintFormat_
{ {
@@ -521,9 +522,10 @@ FT_BEGIN_HEADER
* *
* @description: * @description:
* This iterator object is needed for @FT_Get_Colorline_Stops. It keeps * This iterator object is needed for @FT_Get_Colorline_Stops. It keeps
* state while iterating over the stops of an @FT_ColorLine, * state while iterating over the stops of an @FT_ColorLine, representing
* representing the `ColorLine` struct of the v1 extensions to 'COLR', * the `ColorLine` struct of the v1 extensions to 'COLR', see
* see 'https://github.com/googlefonts/colr-gradients-spec'. * 'https://github.com/googlefonts/colr-gradients-spec'. Do not manually
* modify fields of this iterator.
* *
* @fields: * @fields:
* num_color_stops :: * num_color_stops ::
@@ -537,10 +539,12 @@ FT_BEGIN_HEADER
* An opaque pointer into 'COLR' table data. Set by @FT_Get_Paint. * An opaque pointer into 'COLR' table data. Set by @FT_Get_Paint.
* Updated by @FT_Get_Colorline_Stops. * Updated by @FT_Get_Colorline_Stops.
* *
* @since: * read_variable ::
* 2.11 -- **currently experimental only!** There might be changes * A boolean keeping track of whether variable color lines are to be
* without retaining backward compatibility of both the API and ABI. * read. Set by @FT_Get_Paint.
* *
* @since:
* 2.13
*/ */
typedef struct FT_ColorStopIterator_ typedef struct FT_ColorStopIterator_
{ {
@@ -549,6 +553,8 @@ FT_BEGIN_HEADER
FT_Byte* p; FT_Byte* p;
FT_Bool read_variable;
} FT_ColorStopIterator; } FT_ColorStopIterator;
@@ -569,9 +575,7 @@ FT_BEGIN_HEADER
* Alpha transparency value multiplied with the value from 'CPAL'. * Alpha transparency value multiplied with the value from 'CPAL'.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef struct FT_ColorIndex_ typedef struct FT_ColorIndex_
{ {
@@ -592,19 +596,18 @@ FT_BEGIN_HEADER
* *
* @fields: * @fields:
* stop_offset :: * stop_offset ::
* The stop offset between 0 and 1 along the gradient. * The stop offset along the gradient, expressed as a 16.16 fixed-point
* coordinate.
* *
* color :: * color ::
* The color information for this stop, see @FT_ColorIndex. * The color information for this stop, see @FT_ColorIndex.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef struct FT_ColorStop_ typedef struct FT_ColorStop_
{ {
FT_F2Dot14 stop_offset; FT_Fixed stop_offset;
FT_ColorIndex color; FT_ColorIndex color;
} FT_ColorStop; } FT_ColorStop;
@@ -621,9 +624,7 @@ FT_BEGIN_HEADER
* It describes how the gradient fill continues at the other boundaries. * It describes how the gradient fill continues at the other boundaries.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef enum FT_PaintExtend_ typedef enum FT_PaintExtend_
{ {
@@ -653,9 +654,7 @@ FT_BEGIN_HEADER
* actual @FT_ColorStop's. * actual @FT_ColorStop's.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef struct FT_ColorLine_ typedef struct FT_ColorLine_
{ {
@@ -699,9 +698,7 @@ FT_BEGIN_HEADER
* y translation. * y translation.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef struct FT_Affine_23_ typedef struct FT_Affine_23_
{ {
@@ -722,9 +719,7 @@ FT_BEGIN_HEADER
* 'https://www.w3.org/TR/compositing-1/#porterduffcompositingoperators'. * 'https://www.w3.org/TR/compositing-1/#porterduffcompositingoperators'.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef enum FT_Composite_Mode_ typedef enum FT_Composite_Mode_
{ {
@@ -786,9 +781,7 @@ FT_BEGIN_HEADER
* to be provided. Do not set this value. * to be provided. Do not set this value.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef struct FT_Opaque_Paint_ typedef struct FT_Opaque_Paint_
{ {
@@ -815,9 +808,7 @@ FT_BEGIN_HEADER
* The layer iterator that describes the layers of this paint. * The layer iterator that describes the layers of this paint.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef struct FT_PaintColrLayers_ typedef struct FT_PaintColrLayers_
{ {
@@ -842,9 +833,7 @@ FT_BEGIN_HEADER
* The color information for this solid paint, see @FT_ColorIndex. * The color information for this solid paint, see @FT_ColorIndex.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef struct FT_PaintSolid_ typedef struct FT_PaintSolid_
{ {
@@ -883,9 +872,7 @@ FT_BEGIN_HEADER
* Otherwise equal to~p0. * Otherwise equal to~p0.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef struct FT_PaintLinearGradient_ typedef struct FT_PaintLinearGradient_
{ {
@@ -908,8 +895,7 @@ FT_BEGIN_HEADER
* A structure representing a `PaintRadialGradient` value of the 'COLR' * A structure representing a `PaintRadialGradient` value of the 'COLR'
* v1 extensions, see * v1 extensions, see
* 'https://github.com/googlefonts/colr-gradients-spec'. The glyph * 'https://github.com/googlefonts/colr-gradients-spec'. The glyph
* layer filled with this paint is drawn filled filled with a radial * layer filled with this paint is drawn filled with a radial gradient.
* gradient.
* *
* @fields: * @fields:
* colorline :: * colorline ::
@@ -933,9 +919,7 @@ FT_BEGIN_HEADER
* units represented as a 16.16 fixed-point value. * units represented as a 16.16 fixed-point value.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef struct FT_PaintRadialGradient_ typedef struct FT_PaintRadialGradient_
{ {
@@ -983,9 +967,7 @@ FT_BEGIN_HEADER
* given counter-clockwise, starting from the (positive) y~axis. * given counter-clockwise, starting from the (positive) y~axis.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef struct FT_PaintSweepGradient_ typedef struct FT_PaintSweepGradient_
{ {
@@ -1016,9 +998,7 @@ FT_BEGIN_HEADER
* information that is filled with paint. * information that is filled with paint.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef struct FT_PaintGlyph_ typedef struct FT_PaintGlyph_
{ {
@@ -1042,9 +1022,7 @@ FT_BEGIN_HEADER
* this paint. * this paint.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef struct FT_PaintColrGlyph_ typedef struct FT_PaintColrGlyph_
{ {
@@ -1070,9 +1048,7 @@ FT_BEGIN_HEADER
* 16.16 fixed-point values. * 16.16 fixed-point values.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef struct FT_PaintTransform_ typedef struct FT_PaintTransform_
{ {
@@ -1105,9 +1081,7 @@ FT_BEGIN_HEADER
* 16.16 fixed-point value. * 16.16 fixed-point value.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef struct FT_PaintTranslate_ typedef struct FT_PaintTranslate_
{ {
@@ -1156,9 +1130,7 @@ FT_BEGIN_HEADER
* 16.16 fixed-point value. * 16.16 fixed-point value.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward-compatibility of both the API and ABI.
*
*/ */
typedef struct FT_PaintScale_ typedef struct FT_PaintScale_
{ {
@@ -1194,16 +1166,14 @@ FT_BEGIN_HEADER
* *
* center_x :: * center_x ::
* The x~coordinate of the pivot point of the rotation in font * The x~coordinate of the pivot point of the rotation in font
* units) represented as a 16.16 fixed-point value. * units represented as a 16.16 fixed-point value.
* *
* center_y :: * center_y ::
* The y~coordinate of the pivot point of the rotation in font * The y~coordinate of the pivot point of the rotation in font
* units represented as a 16.16 fixed-point value. * units represented as a 16.16 fixed-point value.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef struct FT_PaintRotate_ typedef struct FT_PaintRotate_
@@ -1252,9 +1222,7 @@ FT_BEGIN_HEADER
* represented as a 16.16 fixed-point value. * represented as a 16.16 fixed-point value.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef struct FT_PaintSkew_ typedef struct FT_PaintSkew_
{ {
@@ -1275,9 +1243,8 @@ FT_BEGIN_HEADER
* FT_PaintComposite * FT_PaintComposite
* *
* @description: * @description:
* A structure representing a 'COLR'v1 `PaintComposite` paint table. * A structure representing a 'COLR' v1 `PaintComposite` paint table.
* Used for compositing two paints in a 'COLR' v1 directed acycling * Used for compositing two paints in a 'COLR' v1 directed acyclic graph.
* graph.
* *
* @fields: * @fields:
* source_paint :: * source_paint ::
@@ -1293,9 +1260,7 @@ FT_BEGIN_HEADER
* `source_paint` is composited onto. * `source_paint` is composited onto.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef struct FT_PaintComposite_ typedef struct FT_PaintComposite_
{ {
@@ -1339,9 +1304,7 @@ FT_BEGIN_HEADER
* * @FT_PaintColrGlyph * * @FT_PaintColrGlyph
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef struct FT_COLR_Paint_ typedef struct FT_COLR_Paint_
{ {
@@ -1386,9 +1349,7 @@ FT_BEGIN_HEADER
* Do not output an initial root transform. * Do not output an initial root transform.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef enum FT_Color_Root_Transform_ typedef enum FT_Color_Root_Transform_
{ {
@@ -1429,9 +1390,7 @@ FT_BEGIN_HEADER
* fixed-point coordinates in 26.6 format. * fixed-point coordinates in 26.6 format.
* *
* @since: * @since:
* 2.12 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
typedef struct FT_ClipBox_ typedef struct FT_ClipBox_
{ {
@@ -1524,9 +1483,7 @@ FT_BEGIN_HEADER
* error, value~0 is returned also. * error, value~0 is returned also.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
FT_EXPORT( FT_Bool ) FT_EXPORT( FT_Bool )
FT_Get_Color_Glyph_Paint( FT_Face face, FT_Get_Color_Glyph_Paint( FT_Face face,
@@ -1568,9 +1525,7 @@ FT_BEGIN_HEADER
* and remove transforms configured using @FT_Set_Transform. * and remove transforms configured using @FT_Set_Transform.
* *
* @since: * @since:
* 2.12 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
FT_EXPORT( FT_Bool ) FT_EXPORT( FT_Bool )
FT_Get_Color_Glyph_ClipBox( FT_Face face, FT_Get_Color_Glyph_ClipBox( FT_Face face,
@@ -1617,9 +1572,7 @@ FT_BEGIN_HEADER
* object can not be retrieved or any other error occurs. * object can not be retrieved or any other error occurs.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
FT_EXPORT( FT_Bool ) FT_EXPORT( FT_Bool )
FT_Get_Paint_Layers( FT_Face face, FT_Get_Paint_Layers( FT_Face face,
@@ -1660,9 +1613,7 @@ FT_BEGIN_HEADER
* also. * also.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
FT_EXPORT( FT_Bool ) FT_EXPORT( FT_Bool )
FT_Get_Colorline_Stops( FT_Face face, FT_Get_Colorline_Stops( FT_Face face,
@@ -1698,9 +1649,7 @@ FT_BEGIN_HEADER
* this paint or any other error occured. * this paint or any other error occured.
* *
* @since: * @since:
* 2.11 -- **currently experimental only!** There might be changes * 2.13
* without retaining backward compatibility of both the API and ABI.
*
*/ */
FT_EXPORT( FT_Bool ) FT_EXPORT( FT_Bool )
FT_Get_Paint( FT_Face face, FT_Get_Paint( FT_Face face,

View File

@@ -4,7 +4,7 @@
* *
* FreeType API for controlling driver modules (specification only). * FreeType API for controlling driver modules (specification only).
* *
* Copyright (C) 2017-2022 by * Copyright (C) 2017-2023 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,
@@ -820,7 +820,6 @@ FT_BEGIN_HEADER
* 2.5 * 2.5
*/ */
/************************************************************************** /**************************************************************************
* *
* @property: * @property:

View File

@@ -4,7 +4,7 @@
* *
* FreeType error codes (specification). * FreeType error codes (specification).
* *
* Copyright (C) 2002-2022 by * Copyright (C) 2002-2023 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 error code handling (specification). * FreeType error code handling (specification).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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,
@@ -29,7 +29,7 @@
* *
* @description: * @description:
* The header file `fterrors.h` (which is automatically included by * The header file `fterrors.h` (which is automatically included by
* `freetype.h` defines the handling of FreeType's enumeration * `freetype.h`) defines the handling of FreeType's enumeration
* constants. It can also be used to generate error message strings * constants. It can also be used to generate error message strings
* with a small macro trick explained below. * with a small macro trick explained below.
* *

View File

@@ -4,7 +4,7 @@
* *
* Support functions for font formats. * Support functions for font formats.
* *
* Copyright (C) 2002-2022 by * Copyright (C) 2002-2023 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 @@
* *
* Access of TrueType's 'gasp' table (specification). * Access of TrueType's 'gasp' table (specification).
* *
* Copyright (C) 2007-2022 by * Copyright (C) 2007-2023 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 (C) 1996-2022 by * Copyright (C) 1996-2023 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,
@@ -355,7 +355,7 @@ FT_BEGIN_HEADER
* *
* @output: * @output:
* aglyph :: * aglyph ::
* A handle to the glyph object. * A handle to the glyph object. `NULL` in case of error.
* *
* @return: * @return:
* FreeType error code. 0~means success. * FreeType error code. 0~means success.
@@ -385,7 +385,7 @@ FT_BEGIN_HEADER
* *
* @output: * @output:
* target :: * target ::
* A handle to the target glyph object. 0~in case of error. * A handle to the target glyph object. `NULL` in case of error.
* *
* @return: * @return:
* FreeType error code. 0~means success. * FreeType error code. 0~means success.
@@ -413,7 +413,7 @@ FT_BEGIN_HEADER
* *
* delta :: * delta ::
* A pointer to a 2d vector to apply. Coordinates are expressed in * A pointer to a 2d vector to apply. Coordinates are expressed in
* 1/64th of a pixel. * 1/64 of a pixel.
* *
* @return: * @return:
* FreeType error code (if not 0, the glyph format is not scalable). * FreeType error code (if not 0, the glyph format is not scalable).
@@ -500,7 +500,7 @@ FT_BEGIN_HEADER
* @output: * @output:
* acbox :: * acbox ::
* The glyph coordinate bounding box. Coordinates are expressed in * The glyph coordinate bounding box. Coordinates are expressed in
* 1/64th of pixels if it is grid-fitted. * 1/64 of pixels if it is grid-fitted.
* *
* @note: * @note:
* Coordinates are relative to the glyph origin, using the y~upwards * Coordinates are relative to the glyph origin, using the y~upwards
@@ -671,7 +671,7 @@ FT_BEGIN_HEADER
* *
* @input: * @input:
* glyph :: * glyph ::
* A handle to the target glyph object. * A handle to the target glyph object. Can be `NULL`.
*/ */
FT_EXPORT( void ) FT_EXPORT( void )
FT_Done_Glyph( FT_Glyph glyph ); FT_Done_Glyph( FT_Glyph glyph );

View File

@@ -4,7 +4,7 @@
* *
* Gzip-compressed stream support. * Gzip-compressed stream support.
* *
* Copyright (C) 2002-2022 by * Copyright (C) 2002-2023 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 (C) 1996-2022 by * Copyright (C) 1996-2023 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 incremental loading (specification). * FreeType incremental loading (specification).
* *
* Copyright (C) 2002-2022 by * Copyright (C) 2002-2023 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 (C) 2006-2022 by * Copyright (C) 2006-2023 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,
@@ -137,11 +137,11 @@ FT_BEGIN_HEADER
* *
* FT_LCD_FILTER_DEFAULT :: * FT_LCD_FILTER_DEFAULT ::
* This is a beveled, normalized, and color-balanced five-tap filter * This is a beveled, normalized, and color-balanced five-tap filter
* with weights of [0x08 0x4D 0x56 0x4D 0x08] in 1/256th units. * with weights of [0x08 0x4D 0x56 0x4D 0x08] in 1/256 units.
* *
* FT_LCD_FILTER_LIGHT :: * FT_LCD_FILTER_LIGHT ::
* this is a boxy, normalized, and color-balanced three-tap filter with * this is a boxy, normalized, and color-balanced three-tap filter with
* weights of [0x00 0x55 0x56 0x55 0x00] in 1/256th units. * weights of [0x00 0x55 0x56 0x55 0x00] in 1/256 units.
* *
* FT_LCD_FILTER_LEGACY :: * FT_LCD_FILTER_LEGACY ::
* FT_LCD_FILTER_LEGACY1 :: * FT_LCD_FILTER_LEGACY1 ::
@@ -226,7 +226,7 @@ FT_BEGIN_HEADER
* *
* weights :: * weights ::
* A pointer to an array; the function copies the first five bytes and * A pointer to an array; the function copies the first five bytes and
* uses them to specify the filter weights in 1/256th units. * uses them to specify the filter weights in 1/256 units.
* *
* @return: * @return:
* FreeType error code. 0~means success. * FreeType error code. 0~means success.

View File

@@ -4,7 +4,7 @@
* *
* Generic list support for FreeType (specification). * Generic list support for FreeType (specification).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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 debugging APIs. * Additional debugging APIs.
* *
* Copyright (C) 2020-2022 by * Copyright (C) 2020-2023 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 (C) 1996-2022 by * Copyright (C) 1996-2023 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 (C) 1996-2022 by * Copyright (C) 1996-2023 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,
@@ -398,6 +398,10 @@ FT_BEGIN_HEADER
* FreeType error code. 0~means success. * FreeType error code. 0~means success.
* *
* @note: * @note:
* The design coordinates are 16.16 fractional values for TrueType GX and
* OpenType variation fonts. For Adobe MM fonts, the values are
* integers.
*
* [Since 2.8.1] To reset all axes to the default values, call the * [Since 2.8.1] To reset all axes to the default values, call the
* function with `num_coords` set to zero and `coords` set to `NULL`. * function with `num_coords` set to zero and `coords` set to `NULL`.
* [Since 2.9] 'Default values' means the currently selected named * [Since 2.9] 'Default values' means the currently selected named
@@ -440,6 +444,11 @@ FT_BEGIN_HEADER
* @return: * @return:
* FreeType error code. 0~means success. * FreeType error code. 0~means success.
* *
* @note:
* The design coordinates are 16.16 fractional values for TrueType GX and
* OpenType variation fonts. For Adobe MM fonts, the values are
* integers.
*
* @since: * @since:
* 2.7.1 * 2.7.1
*/ */
@@ -471,9 +480,9 @@ FT_BEGIN_HEADER
* the number of axes, use default values for the remaining axes. * the number of axes, use default values for the remaining axes.
* *
* coords :: * coords ::
* The design coordinates array (each element must be between 0 and 1.0 * The design coordinates array. Each element is a 16.16 fractional
* for Adobe MM fonts, and between -1.0 and 1.0 for TrueType GX and * value and must be between 0 and 1.0 for Adobe MM fonts, and between
* OpenType variation fonts). * -1.0 and 1.0 for TrueType GX and OpenType variation fonts.
* *
* @return: * @return:
* FreeType error code. 0~means success. * FreeType error code. 0~means success.
@@ -518,7 +527,7 @@ FT_BEGIN_HEADER
* *
* @output: * @output:
* coords :: * coords ::
* The normalized blend coordinates array. * The normalized blend coordinates array (as 16.16 fractional values).
* *
* @return: * @return:
* FreeType error code. 0~means success. * FreeType error code. 0~means success.

View File

@@ -4,7 +4,7 @@
* *
* FreeType modules public interface (specification). * FreeType modules public interface (specification).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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 module error offsets (specification). * FreeType module error offsets (specification).
* *
* Copyright (C) 2001-2022 by * Copyright (C) 2001-2023 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 (C) 1996-2022 by * Copyright (C) 1996-2023 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 possible FT_Parameter tags (specification only). * FreeType API for possible FT_Parameter tags (specification only).
* *
* Copyright (C) 2017-2022 by * Copyright (C) 2017-2023 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 (C) 1996-2022 by * Copyright (C) 1996-2023 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 size objects management (specification). * FreeType size objects management (specification).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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 (C) 1996-2022 by * Copyright (C) 1996-2023 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 (C) 2002-2022 by * Copyright (C) 2002-2023 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,
@@ -293,7 +293,7 @@ FT_BEGIN_HEADER
* *
* miter_limit :: * miter_limit ::
* The maximum reciprocal sine of half-angle at the miter join, * The maximum reciprocal sine of half-angle at the miter join,
* expressed as 16.16 fixed point value. * expressed as 16.16 fixed-point value.
* *
* @note: * @note:
* The `radius` is expressed in the same units as the outline * The `radius` is expressed in the same units as the outline

View File

@@ -5,7 +5,7 @@
* FreeType synthesizing code for emboldening and slanting * FreeType synthesizing code for emboldening and slanting
* (specification). * (specification).
* *
* Copyright (C) 2000-2022 by * Copyright (C) 2000-2023 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,
@@ -68,10 +68,19 @@ FT_BEGIN_HEADER
FT_EXPORT( void ) FT_EXPORT( void )
FT_GlyphSlot_Embolden( FT_GlyphSlot slot ); FT_GlyphSlot_Embolden( FT_GlyphSlot slot );
/* Slant an outline glyph to the right by about 12 degrees. */ /* Slant an outline glyph to the right by about 12 degrees. */
FT_EXPORT( void ) FT_EXPORT( void )
FT_GlyphSlot_Oblique( FT_GlyphSlot slot ); FT_GlyphSlot_Oblique( FT_GlyphSlot slot );
/* Slant an outline glyph by a given sine of an angle. You can apply */
/* slant along either x- or y-axis by choosing a corresponding non-zero */
/* argument. If both slants are non-zero, some affine transformation */
/* will result. */
FT_EXPORT( void )
FT_GlyphSlot_Slant( FT_GlyphSlot slot,
FT_Fixed xslant,
FT_Fixed yslant );
/* */ /* */

View File

@@ -4,7 +4,7 @@
* *
* FreeType low-level system interface definition (specification). * FreeType low-level system interface definition (specification).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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,
@@ -229,7 +229,8 @@ FT_BEGIN_HEADER
* A handle to the source stream. * A handle to the source stream.
* *
* offset :: * offset ::
* The offset of read in stream (always from start). * The offset from the start of the stream to seek to if this is a seek
* operation (see note).
* *
* buffer :: * buffer ::
* The address of the read buffer. * The address of the read buffer.
@@ -241,8 +242,13 @@ FT_BEGIN_HEADER
* The number of bytes effectively read by the stream. * The number of bytes effectively read by the stream.
* *
* @note: * @note:
* This function might be called to perform a seek or skip operation with * This function performs a seek *or* a read operation depending on the
* a `count` of~0. A non-zero return value then indicates an error. * argument values. If `count` is zero, the operation is a seek to
* `offset` bytes. If `count` is >~0, the operation is a read of `count`
* bytes from the current position in the stream, and the `offset` value
* should be ignored.
*
* For seek operations, a non-zero return value indicates an error.
* *
*/ */
typedef unsigned long typedef unsigned long

View File

@@ -4,7 +4,7 @@
* *
* FreeType trigonometric functions (specification). * FreeType trigonometric functions (specification).
* *
* Copyright (C) 2001-2022 by * Copyright (C) 2001-2023 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 simple types definitions (specification only). * FreeType simple types definitions (specification only).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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,
@@ -45,7 +45,10 @@ FT_BEGIN_HEADER
* @description: * @description:
* This section contains the basic data types defined by FreeType~2, * This section contains the basic data types defined by FreeType~2,
* ranging from simple scalar types to bitmap descriptors. More * ranging from simple scalar types to bitmap descriptors. More
* font-specific structures are defined in a different section. * font-specific structures are defined in a different section. Note
* that FreeType does not use floating-point data types. Fractional
* values are represented by fixed-point integers, with lower bits
* storing the fractional part.
* *
* @order: * @order:
* FT_Byte * FT_Byte

View File

@@ -4,7 +4,7 @@
* *
* High-level 'autohint' module-specific interface (specification). * High-level 'autohint' module-specific interface (specification).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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 @@
* *
* Basic OpenType/CFF object type definitions (specification). * Basic OpenType/CFF object type definitions (specification).
* *
* Copyright (C) 2017-2022 by * Copyright (C) 2017-2023 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 @@
* Basic OpenType/CFF type definitions and interface (specification * Basic OpenType/CFF type definitions and interface (specification
* only). * only).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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,
@@ -315,7 +315,7 @@ FT_BEGIN_HEADER
/* The normal stack then points to these values instead of the DICT */ /* The normal stack then points to these values instead of the DICT */
/* because all other operators in Private DICT clear the stack. */ /* because all other operators in Private DICT clear the stack. */
/* `blend_stack' could be cleared at each operator other than blend. */ /* `blend_stack' could be cleared at each operator other than blend. */
/* Blended values are stored as 5-byte fixed point values. */ /* Blended values are stored as 5-byte fixed-point values. */
FT_Byte* blend_stack; /* base of stack allocation */ FT_Byte* blend_stack; /* base of stack allocation */
FT_Byte* blend_top; /* first empty slot */ FT_Byte* blend_top; /* first empty slot */

View File

@@ -4,7 +4,7 @@
* *
* Compiler-specific macro definitions used internally by FreeType. * Compiler-specific macro definitions used internally by FreeType.
* *
* Copyright (C) 2020-2022 by * Copyright (C) 2020-2023 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,6 +34,19 @@ FT_BEGIN_HEADER
# if defined( _COMPILER_VERSION ) && ( _COMPILER_VERSION >= 730 ) # if defined( _COMPILER_VERSION ) && ( _COMPILER_VERSION >= 730 )
# pragma set woff 3505 # pragma set woff 3505
# endif # endif
#endif
/* Newer compilers warn for fall-through case statements. */
#ifndef FALL_THROUGH
# if ( defined( __STDC_VERSION__ ) && __STDC_VERSION__ > 201710L ) || \
( defined( __cplusplus ) && __cplusplus > 201402L )
# define FALL_THROUGH [[__fallthrough__]]
# elif ( defined( __GNUC__ ) && __GNUC__ >= 7 ) || \
( defined( __clang__ ) && __clang_major__ >= 10 )
# define FALL_THROUGH __attribute__(( __fallthrough__ ))
# else
# define FALL_THROUGH ( (void)0 )
# endif
#endif #endif
/* /*
@@ -258,7 +271,7 @@ FT_BEGIN_HEADER
* To export a variable, use `FT_EXPORT_VAR`. * To export a variable, use `FT_EXPORT_VAR`.
*/ */
/* See `freetype/config/compiler_macros.h` for the `FT_EXPORT` definition */ /* See `freetype/config/public-macros.h` for the `FT_EXPORT` definition */
#define FT_EXPORT_DEF( x ) FT_FUNCTION_DEFINITION( x ) #define FT_EXPORT_DEF( x ) FT_FUNCTION_DEFINITION( x )
/* /*

View File

@@ -4,7 +4,7 @@
* *
* Arithmetic computations (specification). * Arithmetic computations (specification).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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,
@@ -278,6 +278,40 @@ FT_BEGIN_HEADER
FT_Long c ); FT_Long c );
/**************************************************************************
*
* @function:
* FT_MulAddFix
*
* @description:
* Compute `(s[0] * f[0] + s[1] * f[1] + ...) / 0x10000`, where `s[n]` is
* usually a 16.16 scalar.
*
* @input:
* s ::
* The array of scalars.
* f ::
* The array of factors.
* count ::
* The number of entries in the array.
*
* @return:
* The result of `(s[0] * f[0] + s[1] * f[1] + ...) / 0x10000`.
*
* @note:
* This function is currently used for the scaled delta computation of
* variation stores. It internally uses 64-bit data types when
* available, otherwise it emulates 64-bit math by using 32-bit
* operations, which produce a correct result but most likely at a slower
* performance in comparison to the implementation base on `int64_t`.
*
*/
FT_BASE( FT_Int32 )
FT_MulAddFix( FT_Fixed* s,
FT_Int32* f,
FT_UInt count );
/* /*
* A variant of FT_Matrix_Multiply which scales its result afterwards. The * A variant of FT_Matrix_Multiply which scales its result afterwards. The
* idea is that both `a' and `b' are scaled by factors of 10 so that the * idea is that both `a' and `b' are scaled by factors of 10 so that the
@@ -413,11 +447,11 @@ FT_BEGIN_HEADER
extern __inline FT_Int32 extern __inline FT_Int32
FT_MSB_i386( FT_UInt32 x ); FT_MSB_i386( FT_UInt32 x );
#pragma aux FT_MSB_i386 = \ #pragma aux FT_MSB_i386 = \
"bsr eax, eax" \ "bsr eax, eax" \
parm [eax] nomemory \ __parm [__eax] __nomemory \
value [eax] \ __value [__eax] \
modify exact [eax] nomemory; __modify __exact [__eax] __nomemory;
#define FT_MSB( x ) FT_MSB_i386( x ) #define FT_MSB( x ) FT_MSB_i386( x )

View File

@@ -4,7 +4,7 @@
* *
* Debugging and logging component (specification). * Debugging and logging component (specification).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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 internal font driver interface (specification). * FreeType internal font driver interface (specification).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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 (C) 2002-2022 by * Copyright (C) 2002-2023 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 memory management macros (specification). * The FreeType memory management macros (specification).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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,
@@ -96,15 +96,15 @@ extern "C++"
#ifdef FT_DEBUG_MEMORY #ifdef FT_DEBUG_MEMORY
FT_BASE( const char* ) _ft_debug_file; FT_BASE( const char* ) ft_debug_file_;
FT_BASE( long ) _ft_debug_lineno; FT_BASE( long ) ft_debug_lineno_;
#define FT_DEBUG_INNER( exp ) ( _ft_debug_file = __FILE__, \ #define FT_DEBUG_INNER( exp ) ( ft_debug_file_ = __FILE__, \
_ft_debug_lineno = __LINE__, \ ft_debug_lineno_ = __LINE__, \
(exp) ) (exp) )
#define FT_ASSIGNP_INNER( p, exp ) ( _ft_debug_file = __FILE__, \ #define FT_ASSIGNP_INNER( p, exp ) ( ft_debug_file_ = __FILE__, \
_ft_debug_lineno = __LINE__, \ ft_debug_lineno_ = __LINE__, \
FT_ASSIGNP( p, exp ) ) FT_ASSIGNP( p, exp ) )
#else /* !FT_DEBUG_MEMORY */ #else /* !FT_DEBUG_MEMORY */

View File

@@ -0,0 +1,85 @@
/****************************************************************************
*
* ftmmtypes.h
*
* OpenType Variations type definitions for internal use
* with the multi-masters service (specification).
*
* Copyright (C) 2022-2023 by
* David Turner, Robert Wilhelm, Werner Lemberg, George Williams, and
* Dominik Röttsches.
*
* 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 FTMMTYPES_H_
#define FTMMTYPES_H_
FT_BEGIN_HEADER
typedef FT_Int32 FT_ItemVarDelta;
typedef struct GX_ItemVarDataRec_
{
FT_UInt itemCount; /* number of delta sets per item */
FT_UInt regionIdxCount; /* number of region indices */
FT_UInt* regionIndices; /* array of `regionCount' indices; */
/* these index `varRegionList' */
FT_ItemVarDelta* deltaSet; /* array of `itemCount' deltas */
/* use `innerIndex' for this array */
} GX_ItemVarDataRec, *GX_ItemVarData;
/* contribution of one axis to a region */
typedef struct GX_AxisCoordsRec_
{
FT_Fixed startCoord;
FT_Fixed peakCoord; /* zero means no effect (factor = 1) */
FT_Fixed endCoord;
} GX_AxisCoordsRec, *GX_AxisCoords;
typedef struct GX_VarRegionRec_
{
GX_AxisCoords axisList; /* array of axisCount records */
} GX_VarRegionRec, *GX_VarRegion;
/* item variation store */
typedef struct GX_ItemVarStoreRec_
{
FT_UInt dataCount;
GX_ItemVarData varData; /* array of dataCount records; */
/* use `outerIndex' for this array */
FT_UShort axisCount;
FT_UInt regionCount; /* total number of regions defined */
GX_VarRegion varRegionList;
} GX_ItemVarStoreRec, *GX_ItemVarStore;
typedef struct GX_DeltaSetIdxMapRec_
{
FT_ULong mapCount;
FT_UInt* outerIndex; /* indices to item var data */
FT_UInt* innerIndex; /* indices to delta set */
} GX_DeltaSetIdxMapRec, *GX_DeltaSetIdxMap;
FT_END_HEADER
#endif /* FTMMTYPES_H_ */
/* END */

View File

@@ -4,7 +4,7 @@
* *
* The FreeType private base classes (specification). * The FreeType private base classes (specification).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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 @@
* *
* Get and set properties of PostScript drivers (specification). * Get and set properties of PostScript drivers (specification).
* *
* Copyright (C) 2017-2022 by * Copyright (C) 2017-2023 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 @@
* *
* Embedded resource forks accessor (specification). * Embedded resource forks accessor (specification).
* *
* Copyright (C) 2004-2022 by * Copyright (C) 2004-2023 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,

View File

@@ -4,7 +4,7 @@
* *
* The FreeType services (specification only). * The FreeType services (specification only).
* *
* Copyright (C) 2003-2022 by * Copyright (C) 2003-2023 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 @@
* *
* Stream handling (specification). * Stream handling (specification).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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,
@@ -238,42 +238,42 @@ FT_BEGIN_HEADER
#define FT_NEXT_BYTE( buffer ) \ #define FT_NEXT_BYTE( buffer ) \
( (unsigned char)*buffer++ ) ( (unsigned char)*buffer++ )
#define FT_NEXT_SHORT( buffer ) \ #define FT_NEXT_SHORT( buffer ) \
( (short)( buffer += 2, FT_PEEK_SHORT( buffer - 2 ) ) ) ( buffer += 2, FT_PEEK_SHORT( buffer - 2 ) )
#define FT_NEXT_USHORT( buffer ) \ #define FT_NEXT_USHORT( buffer ) \
( (unsigned short)( buffer += 2, FT_PEEK_USHORT( buffer - 2 ) ) ) ( buffer += 2, FT_PEEK_USHORT( buffer - 2 ) )
#define FT_NEXT_OFF3( buffer ) \ #define FT_NEXT_OFF3( buffer ) \
( (long)( buffer += 3, FT_PEEK_OFF3( buffer - 3 ) ) ) ( buffer += 3, FT_PEEK_OFF3( buffer - 3 ) )
#define FT_NEXT_UOFF3( buffer ) \ #define FT_NEXT_UOFF3( buffer ) \
( (unsigned long)( buffer += 3, FT_PEEK_UOFF3( buffer - 3 ) ) ) ( buffer += 3, FT_PEEK_UOFF3( buffer - 3 ) )
#define FT_NEXT_LONG( buffer ) \ #define FT_NEXT_LONG( buffer ) \
( (long)( buffer += 4, FT_PEEK_LONG( buffer - 4 ) ) ) ( buffer += 4, FT_PEEK_LONG( buffer - 4 ) )
#define FT_NEXT_ULONG( buffer ) \ #define FT_NEXT_ULONG( buffer ) \
( (unsigned long)( buffer += 4, FT_PEEK_ULONG( buffer - 4 ) ) ) ( buffer += 4, FT_PEEK_ULONG( buffer - 4 ) )
#define FT_NEXT_SHORT_LE( buffer ) \ #define FT_NEXT_SHORT_LE( buffer ) \
( (short)( buffer += 2, FT_PEEK_SHORT_LE( buffer - 2 ) ) ) ( buffer += 2, FT_PEEK_SHORT_LE( buffer - 2 ) )
#define FT_NEXT_USHORT_LE( buffer ) \ #define FT_NEXT_USHORT_LE( buffer ) \
( (unsigned short)( buffer += 2, FT_PEEK_USHORT_LE( buffer - 2 ) ) ) ( buffer += 2, FT_PEEK_USHORT_LE( buffer - 2 ) )
#define FT_NEXT_OFF3_LE( buffer ) \ #define FT_NEXT_OFF3_LE( buffer ) \
( (long)( buffer += 3, FT_PEEK_OFF3_LE( buffer - 3 ) ) ) ( buffer += 3, FT_PEEK_OFF3_LE( buffer - 3 ) )
#define FT_NEXT_UOFF3_LE( buffer ) \ #define FT_NEXT_UOFF3_LE( buffer ) \
( (unsigned long)( buffer += 3, FT_PEEK_UOFF3_LE( buffer - 3 ) ) ) ( buffer += 3, FT_PEEK_UOFF3_LE( buffer - 3 ) )
#define FT_NEXT_LONG_LE( buffer ) \ #define FT_NEXT_LONG_LE( buffer ) \
( (long)( buffer += 4, FT_PEEK_LONG_LE( buffer - 4 ) ) ) ( buffer += 4, FT_PEEK_LONG_LE( buffer - 4 ) )
#define FT_NEXT_ULONG_LE( buffer ) \ #define FT_NEXT_ULONG_LE( buffer ) \
( (unsigned long)( buffer += 4, FT_PEEK_ULONG_LE( buffer - 4 ) ) ) ( buffer += 4, FT_PEEK_ULONG_LE( buffer - 4 ) )
/************************************************************************** /**************************************************************************
@@ -307,17 +307,17 @@ FT_BEGIN_HEADER
#define FT_GET_CHAR() FT_GET_MACRO( FT_Stream_GetByte, FT_Char ) #define FT_GET_CHAR() FT_GET_MACRO( FT_Stream_GetByte, FT_Char )
#define FT_GET_BYTE() FT_GET_MACRO( FT_Stream_GetByte, FT_Byte ) #define FT_GET_BYTE() FT_GET_MACRO( FT_Stream_GetByte, FT_Byte )
#define FT_GET_SHORT() FT_GET_MACRO( FT_Stream_GetUShort, FT_Short ) #define FT_GET_SHORT() FT_GET_MACRO( FT_Stream_GetUShort, FT_Int16 )
#define FT_GET_USHORT() FT_GET_MACRO( FT_Stream_GetUShort, FT_UShort ) #define FT_GET_USHORT() FT_GET_MACRO( FT_Stream_GetUShort, FT_UInt16 )
#define FT_GET_UOFF3() FT_GET_MACRO( FT_Stream_GetUOffset, FT_ULong ) #define FT_GET_UOFF3() FT_GET_MACRO( FT_Stream_GetUOffset, FT_UInt32 )
#define FT_GET_LONG() FT_GET_MACRO( FT_Stream_GetULong, FT_Long ) #define FT_GET_LONG() FT_GET_MACRO( FT_Stream_GetULong, FT_Int32 )
#define FT_GET_ULONG() FT_GET_MACRO( FT_Stream_GetULong, FT_ULong ) #define FT_GET_ULONG() FT_GET_MACRO( FT_Stream_GetULong, FT_UInt32 )
#define FT_GET_TAG4() FT_GET_MACRO( FT_Stream_GetULong, FT_ULong ) #define FT_GET_TAG4() FT_GET_MACRO( FT_Stream_GetULong, FT_UInt32 )
#define FT_GET_SHORT_LE() FT_GET_MACRO( FT_Stream_GetUShortLE, FT_Short ) #define FT_GET_SHORT_LE() FT_GET_MACRO( FT_Stream_GetUShortLE, FT_Int16 )
#define FT_GET_USHORT_LE() FT_GET_MACRO( FT_Stream_GetUShortLE, FT_UShort ) #define FT_GET_USHORT_LE() FT_GET_MACRO( FT_Stream_GetUShortLE, FT_UInt16 )
#define FT_GET_LONG_LE() FT_GET_MACRO( FT_Stream_GetULongLE, FT_Long ) #define FT_GET_LONG_LE() FT_GET_MACRO( FT_Stream_GetULongLE, FT_Int32 )
#define FT_GET_ULONG_LE() FT_GET_MACRO( FT_Stream_GetULongLE, FT_ULong ) #define FT_GET_ULONG_LE() FT_GET_MACRO( FT_Stream_GetULongLE, FT_UInt32 )
#endif #endif
@@ -334,16 +334,16 @@ FT_BEGIN_HEADER
*/ */
#define FT_READ_BYTE( var ) FT_READ_MACRO( FT_Stream_ReadByte, FT_Byte, var ) #define FT_READ_BYTE( var ) FT_READ_MACRO( FT_Stream_ReadByte, FT_Byte, var )
#define FT_READ_CHAR( var ) FT_READ_MACRO( FT_Stream_ReadByte, FT_Char, var ) #define FT_READ_CHAR( var ) FT_READ_MACRO( FT_Stream_ReadByte, FT_Char, var )
#define FT_READ_SHORT( var ) FT_READ_MACRO( FT_Stream_ReadUShort, FT_Short, var ) #define FT_READ_SHORT( var ) FT_READ_MACRO( FT_Stream_ReadUShort, FT_Int16, var )
#define FT_READ_USHORT( var ) FT_READ_MACRO( FT_Stream_ReadUShort, FT_UShort, var ) #define FT_READ_USHORT( var ) FT_READ_MACRO( FT_Stream_ReadUShort, FT_UInt16, var )
#define FT_READ_UOFF3( var ) FT_READ_MACRO( FT_Stream_ReadUOffset, FT_ULong, var ) #define FT_READ_UOFF3( var ) FT_READ_MACRO( FT_Stream_ReadUOffset, FT_UInt32, var )
#define FT_READ_LONG( var ) FT_READ_MACRO( FT_Stream_ReadULong, FT_Long, var ) #define FT_READ_LONG( var ) FT_READ_MACRO( FT_Stream_ReadULong, FT_Int32, var )
#define FT_READ_ULONG( var ) FT_READ_MACRO( FT_Stream_ReadULong, FT_ULong, var ) #define FT_READ_ULONG( var ) FT_READ_MACRO( FT_Stream_ReadULong, FT_UInt32, var )
#define FT_READ_SHORT_LE( var ) FT_READ_MACRO( FT_Stream_ReadUShortLE, FT_Short, var ) #define FT_READ_SHORT_LE( var ) FT_READ_MACRO( FT_Stream_ReadUShortLE, FT_Int16, var )
#define FT_READ_USHORT_LE( var ) FT_READ_MACRO( FT_Stream_ReadUShortLE, FT_UShort, var ) #define FT_READ_USHORT_LE( var ) FT_READ_MACRO( FT_Stream_ReadUShortLE, FT_UInt16, var )
#define FT_READ_LONG_LE( var ) FT_READ_MACRO( FT_Stream_ReadULongLE, FT_Long, var ) #define FT_READ_LONG_LE( var ) FT_READ_MACRO( FT_Stream_ReadULongLE, FT_Int32, var )
#define FT_READ_ULONG_LE( var ) FT_READ_MACRO( FT_Stream_ReadULongLE, FT_ULong, var ) #define FT_READ_ULONG_LE( var ) FT_READ_MACRO( FT_Stream_ReadULongLE, FT_UInt32, var )
#ifndef FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM #ifndef FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM
@@ -459,23 +459,23 @@ FT_BEGIN_HEADER
FT_Stream_GetByte( FT_Stream stream ); FT_Stream_GetByte( FT_Stream stream );
/* read a 16-bit big-endian unsigned integer from an entered frame */ /* read a 16-bit big-endian unsigned integer from an entered frame */
FT_BASE( FT_UShort ) FT_BASE( FT_UInt16 )
FT_Stream_GetUShort( FT_Stream stream ); FT_Stream_GetUShort( FT_Stream stream );
/* read a 24-bit big-endian unsigned integer from an entered frame */ /* read a 24-bit big-endian unsigned integer from an entered frame */
FT_BASE( FT_ULong ) FT_BASE( FT_UInt32 )
FT_Stream_GetUOffset( FT_Stream stream ); FT_Stream_GetUOffset( FT_Stream stream );
/* read a 32-bit big-endian unsigned integer from an entered frame */ /* read a 32-bit big-endian unsigned integer from an entered frame */
FT_BASE( FT_ULong ) FT_BASE( FT_UInt32 )
FT_Stream_GetULong( FT_Stream stream ); FT_Stream_GetULong( FT_Stream stream );
/* read a 16-bit little-endian unsigned integer from an entered frame */ /* read a 16-bit little-endian unsigned integer from an entered frame */
FT_BASE( FT_UShort ) FT_BASE( FT_UInt16 )
FT_Stream_GetUShortLE( FT_Stream stream ); FT_Stream_GetUShortLE( FT_Stream stream );
/* read a 32-bit little-endian unsigned integer from an entered frame */ /* read a 32-bit little-endian unsigned integer from an entered frame */
FT_BASE( FT_ULong ) FT_BASE( FT_UInt32 )
FT_Stream_GetULongLE( FT_Stream stream ); FT_Stream_GetULongLE( FT_Stream stream );
@@ -485,7 +485,7 @@ FT_BEGIN_HEADER
FT_Error* error ); FT_Error* error );
/* read a 16-bit big-endian unsigned integer from a stream */ /* read a 16-bit big-endian unsigned integer from a stream */
FT_BASE( FT_UShort ) FT_BASE( FT_UInt16 )
FT_Stream_ReadUShort( FT_Stream stream, FT_Stream_ReadUShort( FT_Stream stream,
FT_Error* error ); FT_Error* error );
@@ -495,17 +495,17 @@ FT_BEGIN_HEADER
FT_Error* error ); FT_Error* error );
/* read a 32-bit big-endian integer from a stream */ /* read a 32-bit big-endian integer from a stream */
FT_BASE( FT_ULong ) FT_BASE( FT_UInt32 )
FT_Stream_ReadULong( FT_Stream stream, FT_Stream_ReadULong( FT_Stream stream,
FT_Error* error ); FT_Error* error );
/* read a 16-bit little-endian unsigned integer from a stream */ /* read a 16-bit little-endian unsigned integer from a stream */
FT_BASE( FT_UShort ) FT_BASE( FT_UInt16 )
FT_Stream_ReadUShortLE( FT_Stream stream, FT_Stream_ReadUShortLE( FT_Stream stream,
FT_Error* error ); FT_Error* error );
/* read a 32-bit little-endian unsigned integer from a stream */ /* read a 32-bit little-endian unsigned integer from a stream */
FT_BASE( FT_ULong ) FT_BASE( FT_UInt32 )
FT_Stream_ReadULongLE( FT_Stream stream, FT_Stream_ReadULongLE( FT_Stream stream,
FT_Error* error ); FT_Error* error );

View File

@@ -4,7 +4,7 @@
* *
* Tracing handling (specification only). * Tracing handling (specification only).
* *
* Copyright (C) 2002-2022 by * Copyright (C) 2002-2023 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 (C) 2004-2022 by * Copyright (C) 2004-2023 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 @@
* Auxiliary functions and data structures related to PostScript fonts * Auxiliary functions and data structures related to PostScript fonts
* (specification). * (specification).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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,
@@ -132,9 +132,6 @@ FT_BEGIN_HEADER
* max_elems :: * max_elems ::
* The maximum number of elements in table. * The maximum number of elements in table.
* *
* num_elems ::
* The current number of elements in table.
*
* elements :: * elements ::
* A table of element addresses within the block. * A table of element addresses within the block.
* *
@@ -155,7 +152,6 @@ FT_BEGIN_HEADER
FT_ULong init; FT_ULong init;
FT_Int max_elems; FT_Int max_elems;
FT_Int num_elems;
FT_Byte** elements; /* addresses of table elements */ FT_Byte** elements; /* addresses of table elements */
FT_UInt* lengths; /* lengths of table elements */ FT_UInt* lengths; /* lengths of table elements */

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 (C) 2001-2022 by * Copyright (C) 2001-2023 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,
@@ -294,7 +294,7 @@ FT_BEGIN_HEADER
* *
* @note: * @note:
* On input, all points within the outline are in font coordinates. On * On input, all points within the outline are in font coordinates. On
* output, they are in 1/64th of pixels. * output, they are in 1/64 of pixels.
* *
* The scaling transformation is taken from the 'globals' object which * The scaling transformation is taken from the 'globals' object which
* must correspond to the same font as the glyph. * must correspond to the same font as the glyph.
@@ -607,7 +607,7 @@ FT_BEGIN_HEADER
* *
* @note: * @note:
* On input, all points within the outline are in font coordinates. On * On input, all points within the outline are in font coordinates. On
* output, they are in 1/64th of pixels. * output, they are in 1/64 of pixels.
* *
* The scaling transformation is taken from the 'globals' object which * The scaling transformation is taken from the 'globals' object which
* must correspond to the same font than the glyph. * must correspond to the same font than the glyph.

View File

@@ -4,7 +4,7 @@
* *
* The FreeType BDF services (specification). * The FreeType BDF services (specification).
* *
* Copyright (C) 2003-2022 by * Copyright (C) 2003-2023 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 CFF tables loader service (specification). * The FreeType CFF tables loader service (specification).
* *
* Copyright (C) 2017-2022 by * Copyright (C) 2017-2023 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 CID font services (specification). * The FreeType CID font services (specification).
* *
* Copyright (C) 2007-2022 by * Copyright (C) 2007-2023 by
* Derek Clegg and Michael Toftdal. * 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,

View File

@@ -4,7 +4,7 @@
* *
* The FreeType font format service (specification only). * The FreeType font format service (specification only).
* *
* Copyright (C) 2003-2022 by * Copyright (C) 2003-2023 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 dictionary services (specification). * The FreeType glyph dictionary services (specification).
* *
* Copyright (C) 2003-2022 by * Copyright (C) 2003-2023 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 (C) 2004-2022 by * Copyright (C) 2004-2023 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 (C) 2006-2022 by * Copyright (C) 2006-2023 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 services for metrics variations (specification). * The FreeType services for metrics variations (specification).
* *
* Copyright (C) 2016-2022 by * Copyright (C) 2016-2023 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,8 +4,8 @@
* *
* The FreeType Multiple Masters and GX var services (specification). * The FreeType Multiple Masters and GX var services (specification).
* *
* Copyright (C) 2003-2022 by * Copyright (C) 2003-2023 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, Werner Lemberg, and Dominik Röttsches.
* *
* 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
@@ -19,7 +19,9 @@
#ifndef SVMM_H_ #ifndef SVMM_H_
#define SVMM_H_ #define SVMM_H_
#include <freetype/ftmm.h>
#include <freetype/internal/ftserv.h> #include <freetype/internal/ftserv.h>
#include <freetype/internal/ftmmtypes.h>
FT_BEGIN_HEADER FT_BEGIN_HEADER
@@ -96,53 +98,94 @@ FT_BEGIN_HEADER
FT_UInt* len, FT_UInt* len,
FT_Fixed* weight_vector ); FT_Fixed* weight_vector );
typedef FT_Error
(*FT_Var_Load_Delta_Set_Idx_Map_Func)( FT_Face face,
FT_ULong offset,
GX_DeltaSetIdxMap map,
GX_ItemVarStore itemStore,
FT_ULong table_len );
typedef FT_Error
(*FT_Var_Load_Item_Var_Store_Func)( FT_Face face,
FT_ULong offset,
GX_ItemVarStore itemStore );
typedef FT_ItemVarDelta
(*FT_Var_Get_Item_Delta_Func)( FT_Face face,
GX_ItemVarStore itemStore,
FT_UInt outerIndex,
FT_UInt innerIndex );
typedef void
(*FT_Var_Done_Item_Var_Store_Func)( FT_Face face,
GX_ItemVarStore itemStore );
typedef void
(*FT_Var_Done_Delta_Set_Idx_Map_Func)( FT_Face face,
GX_DeltaSetIdxMap deltaSetIdxMap );
FT_DEFINE_SERVICE( MultiMasters ) FT_DEFINE_SERVICE( MultiMasters )
{ {
FT_Get_MM_Func get_mm; FT_Get_MM_Func get_mm;
FT_Set_MM_Design_Func set_mm_design; FT_Set_MM_Design_Func set_mm_design;
FT_Set_MM_Blend_Func set_mm_blend; FT_Set_MM_Blend_Func set_mm_blend;
FT_Get_MM_Blend_Func get_mm_blend; FT_Get_MM_Blend_Func get_mm_blend;
FT_Get_MM_Var_Func get_mm_var; FT_Get_MM_Var_Func get_mm_var;
FT_Set_Var_Design_Func set_var_design; FT_Set_Var_Design_Func set_var_design;
FT_Get_Var_Design_Func get_var_design; FT_Get_Var_Design_Func get_var_design;
FT_Set_Instance_Func set_instance; FT_Set_Instance_Func set_instance;
FT_Set_MM_WeightVector_Func set_mm_weightvector; FT_Set_MM_WeightVector_Func set_mm_weightvector;
FT_Get_MM_WeightVector_Func get_mm_weightvector; FT_Get_MM_WeightVector_Func get_mm_weightvector;
/* for internal use; only needed for code sharing between modules */ /* for internal use; only needed for code sharing between modules */
FT_Get_Var_Blend_Func get_var_blend; FT_Var_Load_Delta_Set_Idx_Map_Func load_delta_set_idx_map;
FT_Done_Blend_Func done_blend; FT_Var_Load_Item_Var_Store_Func load_item_var_store;
FT_Var_Get_Item_Delta_Func get_item_delta;
FT_Var_Done_Item_Var_Store_Func done_item_var_store;
FT_Var_Done_Delta_Set_Idx_Map_Func done_delta_set_idx_map;
FT_Get_Var_Blend_Func get_var_blend;
FT_Done_Blend_Func done_blend;
}; };
#define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_, \ #define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_, \
get_mm_, \ get_mm_, \
set_mm_design_, \ set_mm_design_, \
set_mm_blend_, \ set_mm_blend_, \
get_mm_blend_, \ get_mm_blend_, \
get_mm_var_, \ get_mm_var_, \
set_var_design_, \ set_var_design_, \
get_var_design_, \ get_var_design_, \
set_instance_, \ set_instance_, \
set_weightvector_, \ set_weightvector_, \
get_weightvector_, \ get_weightvector_, \
get_var_blend_, \ load_delta_set_idx_map_, \
done_blend_ ) \ load_item_var_store_, \
static const FT_Service_MultiMastersRec class_ = \ get_item_delta_, \
{ \ done_item_var_store_, \
get_mm_, \ done_delta_set_idx_map_, \
set_mm_design_, \ get_var_blend_, \
set_mm_blend_, \ done_blend_ ) \
get_mm_blend_, \ static const FT_Service_MultiMastersRec class_ = \
get_mm_var_, \ { \
set_var_design_, \ get_mm_, \
get_var_design_, \ set_mm_design_, \
set_instance_, \ set_mm_blend_, \
set_weightvector_, \ get_mm_blend_, \
get_weightvector_, \ get_mm_var_, \
get_var_blend_, \ set_var_design_, \
done_blend_ \ get_var_design_, \
set_instance_, \
set_weightvector_, \
get_weightvector_, \
load_delta_set_idx_map_, \
load_item_var_store_, \
get_item_delta_, \
done_item_var_store_, \
done_delta_set_idx_map_, \
get_var_blend_, \
done_blend_ \
}; };
/* */ /* */

View File

@@ -4,7 +4,7 @@
* *
* The FreeType OpenType validation service (specification). * The FreeType OpenType validation service (specification).
* *
* Copyright (C) 2004-2022 by * Copyright (C) 2004-2023 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 (C) 2003-2022 by * Copyright (C) 2003-2023 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 (C) 2003-2022 by * Copyright (C) 2003-2023 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 (C) 2012-2022 by * Copyright (C) 2012-2023 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 (C) 2003-2022 by * Copyright (C) 2003-2023 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 (C) 2003-2022 by * Copyright (C) 2003-2023 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 (C) 2003-2022 by * Copyright (C) 2003-2023 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 TrueType/sfnt cmap extra information service. * The FreeType TrueType/sfnt cmap extra information service.
* *
* Copyright (C) 2003-2022 by * Copyright (C) 2003-2023 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 @@
* *
* The FreeType TrueType engine query service (specification). * The FreeType TrueType engine query service (specification).
* *
* Copyright (C) 2006-2022 by * Copyright (C) 2006-2023 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 TrueType glyph service. * The FreeType TrueType glyph service.
* *
* Copyright (C) 2007-2022 by * Copyright (C) 2007-2023 by
* David Turner. * 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,

View File

@@ -4,7 +4,7 @@
* *
* The FreeType Windows FNT/FONT service (specification). * The FreeType Windows FNT/FONT service (specification).
* *
* Copyright (C) 2003-2022 by * Copyright (C) 2003-2023 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 (C) 1996-2022 by * Copyright (C) 1996-2023 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 @@
* *
* Interface of ot-svg module (specification only). * Interface of ot-svg module (specification only).
* *
* Copyright (C) 2022 by * Copyright (C) 2022-2023 by
* David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti. * David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti.
* *
* 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 @@
* Basic Type1/Type2 type definitions and interface (specification * Basic Type1/Type2 type definitions and interface (specification
* only). * only).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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,
@@ -172,8 +172,8 @@ FT_BEGIN_HEADER
{ {
FT_Bool IsCIDFont; FT_Bool IsCIDFont;
FT_BBox FontBBox; FT_BBox FontBBox;
FT_Fixed Ascender; FT_Fixed Ascender; /* optional, mind the zero */
FT_Fixed Descender; FT_Fixed Descender; /* optional, mind the zero */
AFM_TrackKern TrackKerns; /* free if non-NULL */ AFM_TrackKern TrackKerns; /* free if non-NULL */
FT_UInt NumTrackKern; FT_UInt NumTrackKern;
AFM_KernPair KernPairs; /* free if non-NULL */ AFM_KernPair KernPairs; /* free if non-NULL */

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 (C) 1996-2022 by * Copyright (C) 1996-2023 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 @@
* Basic WOFF/WOFF2 type definitions and interface (specification * Basic WOFF/WOFF2 type definitions and interface (specification
* only). * only).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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 @@
* *
* Interface for OT-SVG support related things (specification). * Interface for OT-SVG support related things (specification).
* *
* Copyright (C) 2022 by * Copyright (C) 2022-2023 by
* David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti. * David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti.
* *
* 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 @@
* Basic Type 1/Type 2 tables definitions and interface (specification * Basic Type 1/Type 2 tables definitions and interface (specification
* only). * only).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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 @@
* *
* TrueType name ID definitions (specification only). * TrueType name ID definitions (specification only).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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 @@
* Basic SFNT/TrueType tables definitions and interface * Basic SFNT/TrueType tables definitions and interface
* (specification only). * (specification only).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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,
@@ -424,8 +424,8 @@ FT_BEGIN_HEADER
/* only version 5 and higher: */ /* only version 5 and higher: */
FT_UShort usLowerOpticalPointSize; /* in twips (1/20th points) */ FT_UShort usLowerOpticalPointSize; /* in twips (1/20 points) */
FT_UShort usUpperOpticalPointSize; /* in twips (1/20th points) */ FT_UShort usUpperOpticalPointSize; /* in twips (1/20 points) */
} TT_OS2; } TT_OS2;

View File

@@ -4,7 +4,7 @@
* *
* Tags for TrueType and OpenType tables (specification only). * Tags for TrueType and OpenType tables (specification only).
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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 2 build and setup macros. * FreeType 2 build and setup macros.
* *
* Copyright (C) 1996-2022 by * Copyright (C) 1996-2023 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 @@
* *
* Auto-fitter data for blue strings (body). * Auto-fitter data for blue strings (body).
* *
* Copyright (C) 2013-2022 by * Copyright (C) 2013-2023 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 @@
* *
* Auto-fitter data for blue strings (body). * Auto-fitter data for blue strings (body).
* *
* Copyright (C) 2013-2022 by * Copyright (C) 2013-2023 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

@@ -2,7 +2,7 @@
// //
// Auto-fitter data for blue strings. // Auto-fitter data for blue strings.
// //
// Copyright (C) 2013-2022 by // Copyright (C) 2013-2023 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 @@
* *
* Auto-fitter data for blue strings (specification). * Auto-fitter data for blue strings (specification).
* *
* Copyright (C) 2013-2022 by * Copyright (C) 2013-2023 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 @@
* *
* Auto-fitter data for blue strings (specification). * Auto-fitter data for blue strings (specification).
* *
* Copyright (C) 2013-2022 by * Copyright (C) 2013-2023 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 @@
* *
* Auto-fitter hinting routines for CJK writing system (body). * Auto-fitter hinting routines for CJK writing system (body).
* *
* Copyright (C) 2006-2022 by * Copyright (C) 2006-2023 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,
@@ -650,7 +650,7 @@
af_cjk_metrics_check_digits( metrics, face ); af_cjk_metrics_check_digits( metrics, face );
} }
FT_Set_Charmap( face, oldmap ); face->charmap = oldmap;
return FT_Err_Ok; return FT_Err_Ok;
} }
@@ -741,9 +741,11 @@
( dim == AF_DIMENSION_HORZ ) ? 'H' : 'V', ( dim == AF_DIMENSION_HORZ ) ? 'H' : 'V',
nn, blue->ref.org, blue->shoot.org )); nn, blue->ref.org, blue->shoot.org ));
FT_TRACE5(( " ref: cur=%.2f fit=%.2f\n", FT_TRACE5(( " ref: cur=%.2f fit=%.2f\n",
blue->ref.cur / 64.0, blue->ref.fit / 64.0 )); (double)blue->ref.cur / 64,
(double)blue->ref.fit / 64 ));
FT_TRACE5(( " shoot: cur=%.2f fit=%.2f\n", FT_TRACE5(( " shoot: cur=%.2f fit=%.2f\n",
blue->shoot.cur / 64.0, blue->shoot.fit / 64.0 )); (double)blue->shoot.cur / 64,
(double)blue->shoot.fit / 64 ));
blue->flags |= AF_CJK_BLUE_ACTIVE; blue->flags |= AF_CJK_BLUE_ACTIVE;
} }
@@ -1044,7 +1046,7 @@
{ {
AF_Edge found = NULL; AF_Edge found = NULL;
FT_Pos best = 0xFFFFU; FT_Pos best = 0xFFFFU;
FT_Int ee; FT_UInt ee;
/* look for an edge corresponding to the segment */ /* look for an edge corresponding to the segment */
@@ -1629,8 +1631,10 @@
FT_TRACE5(( " CJKLINK: edge %ld @%d (opos=%.2f) linked to %.2f," FT_TRACE5(( " CJKLINK: edge %ld @%d (opos=%.2f) linked to %.2f,"
" dist was %.2f, now %.2f\n", " dist was %.2f, now %.2f\n",
stem_edge - hints->axis[dim].edges, stem_edge->fpos, stem_edge - hints->axis[dim].edges, stem_edge->fpos,
stem_edge->opos / 64.0, stem_edge->pos / 64.0, (double)stem_edge->opos / 64,
dist / 64.0, fitted_width / 64.0 )); (double)stem_edge->pos / 64,
(double)dist / 64,
(double)fitted_width / 64 ));
} }
@@ -1850,8 +1854,8 @@
#ifdef FT_DEBUG_LEVEL_TRACE #ifdef FT_DEBUG_LEVEL_TRACE
FT_TRACE5(( " CJKBLUE: edge %ld @%d (opos=%.2f) snapped to %.2f," FT_TRACE5(( " CJKBLUE: edge %ld @%d (opos=%.2f) snapped to %.2f,"
" was %.2f\n", " was %.2f\n",
edge1 - edges, edge1->fpos, edge1->opos / 64.0, edge1 - edges, edge1->fpos, (double)edge1->opos / 64,
blue->fit / 64.0, edge1->pos / 64.0 )); (double)blue->fit / 64, (double)edge1->pos / 64 ));
num_actions++; num_actions++;
#endif #endif
@@ -2024,8 +2028,8 @@
#if 0 #if 0
printf( "stem (%d,%d) adjusted (%.1f,%.1f)\n", printf( "stem (%d,%d) adjusted (%.1f,%.1f)\n",
edge - edges, edge2 - edges, edge - edges, edge2 - edges,
( edge->pos - edge->opos ) / 64.0, (double)( edge->pos - edge->opos ) / 64,
( edge2->pos - edge2->opos ) / 64.0 ); (double)( edge2->pos - edge2->opos ) / 64 );
#endif #endif
anchor = edge; anchor = edge;

View File

@@ -4,7 +4,7 @@
* *
* Auto-fitter hinting routines for CJK writing system (specification). * Auto-fitter hinting routines for CJK writing system (specification).
* *
* Copyright (C) 2006-2022 by * Copyright (C) 2006-2023 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 @@
* *
* Auto-fitter coverages (specification only). * Auto-fitter coverages (specification only).
* *
* Copyright (C) 2013-2022 by * Copyright (C) 2013-2023 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 @@
* Auto-fitter dummy routines to be used if no hinting should be * Auto-fitter dummy routines to be used if no hinting should be
* performed (body). * performed (body).
* *
* Copyright (C) 2003-2022 by * Copyright (C) 2003-2023 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