Update Freetype to 2.14.0

[ChangeLog][Third-Party Code] Updated bundled Freetype to
2.14.0.

Task-number: QTBUG-140079
Pick-to: 6.8 6.5 5.15
Change-Id: I6b72136a77d2870bc9618ca5dac84f875023d2f7
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
(cherry picked from commit 47975226ac)
(cherry picked from commit 9cc32c2490)
(cherry picked from commit 05287da820)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Eskil Abrahamsen Blomfeldt 2025-09-11 08:16:21 +02:00 committed by Qt Cherry-pick Bot
parent 0b96e51148
commit 076a68e945
533 changed files with 12071 additions and 6960 deletions

View File

@ -1,6 +1,8 @@
# From freetype CMakeLists.txt
set(BASE_SRCS
src/autofit/afadjust.c
src/autofit/afgsub.c
src/autofit/autofit.c
src/base/ftbase.c
src/base/ftbbox.c

View File

@ -1,7 +1,7 @@
FreeType 2.13.3
FreeType 2.14.0
===============
Homepage: https://www.freetype.org
Homepage: https://freetype.org
FreeType is a freely available software library to render fonts.
@ -13,7 +13,7 @@ Please read the `docs/CHANGES` file, it contains IMPORTANT
INFORMATION.
Read the files `docs/INSTALL*` for installation instructions; see the
file `docs/LICENSE.TXT` for the available licenses.
file `LICENSE.TXT` for the available licenses.
For using FreeType's git repository instead of a distribution bundle,
please read file `README.git`. Note that you have to actually clone
@ -32,13 +32,13 @@ sites. Go to
and download one of the following files.
freetype-doc-2.13.3.tar.xz
freetype-doc-2.13.3.tar.gz
ftdoc2133.zip
freetype-doc-2.14.0.tar.xz
freetype-doc-2.14.0.tar.gz
ftdoc2140.zip
To view the documentation online, go to
https://www.freetype.org/freetype2/docs/
https://freetype.org/freetype2/docs/
Mailing Lists
@ -54,7 +54,7 @@ e-mail lists.
The lists are moderated; see
https://www.freetype.org/contact.html
https://freetype.org/contact.html
how to subscribe.
@ -85,7 +85,7 @@ FreeType!
Details on the process can be found here:
https://www.freetype.org/developer.html#patches
https://freetype.org/developer.html#patches
Enjoy!
@ -94,7 +94,7 @@ Enjoy!
----------------------------------------------------------------------
Copyright (C) 2006-2024 by
Copyright (C) 2006-2025 by
David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used,

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -4,7 +4,7 @@
*
* Debugging and logging component for Win32 (body).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@ -64,7 +64,7 @@
* with the actual log message if set to true.
*
* 5. The flag `ft_timestamp_flag` prints time along with the actual log
* message if set to ture.
* message if set to true.
*
* 6. `ft_have_newline_char` is used to differentiate between a log
* message with and without a trailing newline character.

View File

@ -1,3 +1,95 @@
CHANGES BETWEEN 2.13.3 and 2.14.0 (2025-Sep-06)
I. IMPORTANT CHANGES
- A new configuration macro `FT_CONFIG_OPTION_USE_HARFBUZZ_DYNAMIC`
is available to load the HarfBuzz library dynamically (in addition
to the standard static and dynamic linking modes); cmake, meson,
and autotools support have been updated accordingly. Using this
new feature makes it possible to avoid the circular dependency
between HarfBuzz and FreeType.
A side effect of this change is that FreeType no longer uses
HarfBuzz header files (if HarfBuzz support is activated).
This code was contributed by Behdad Esfahbod.
- The auto-hinter got new abilities.
. It can now better separate diacritic glyphs from base glyphs at
small sizes by artificially moving diacritics up (or down) if
necessary.
. Tilde accent glyphs get vertically stretched at small sizes so
that they don't degenerate to horizontal lines.
. Diacritics directly attached to a base glyph (like the ogonek in
character 'ę') no longer distort the shape of the base glyph.
These features use a database (which currently has entries for
Unicode characters up to U+FFFF, based on Unicode 17.0), handling
scripts like Latin, Cyrillic, or Greek, but not Arabic or Indic
scripts. FreeType needs to access a proper Unicode character map
(or must be able to construct such a cmap) of a given font to make
this work.
The central algorithm and the foundation of this feature was Craig
White's GSoC 2023 project.
- Bitmap-only TrueType fonts now ignore the `FT_LOAD_NO_BITMAP` flag
and proceed loading bitmaps instead of giving an error. This
behavior is documented and implemented for other bitmap-only
fonts. The flag was always meant to suppress the bitmap strikes
in favor of outlines, not to ban them completely.
II. IMPORTANT BUG FIXES
- Users of the `TT_CONFIG_OPTION_GPOS_KERNING` configuration option
should update; the 'GPOS' table wasn't correctly validated before
access, which could lead to crashes with malformed font files.
III. MISCELLANEOUS
- `FT_Set_Var_Design_Coordinates` and `FT_Set_MM_Blend_Coordinates`
now set the `FT_FACE_FLAG_VARIATION` bit in the `face_flag` field
of `FT_Face` (i.e., the macro `FT_IS_VARIATION` returns true) also
if any of the provided coordinates is different from the face's
default value for the corresponding axis, that is, the set up face
is not at its default position.
- `FT_Load_Sfnt_Table` can now also load a font's table directory.
- The TrueType instruction interpreter was optimized to produce a
15% gain in the glyph loading speed.
- Handling of Variation Fonts is now considerably faster, thanks to
contributions by Behdad Esfahbod.
- TrueType and CFF glyph loading speed has been improved by 5-10% on
modern 64-bit platforms as a result of better handling of fixed-
point multiplication.
- The BDF driver now loads fonts 75% faster.
- 'GPOS' kern table handling (if the `TT_CONFIG_OPTION_GPOS_KERNING`
configuration option is active) is now about 3.5 times faster than
before.
- Support for the (currently undocumented) 'flip' graphic type in
the 'sbix' SFNT table as used in the `Apple Color Emoji.ttc` font
(code provided by Andrew Murray).
- `ftmulti` can now scroll through named instances and gracefully
show static fonts.
- The build file on OpenVMS now also creates a 32-bit version of the
library.
======================================================================
CHANGES BETWEEN 2.13.2 and 2.13.3 (2024-Aug-11)
I. IMPORTANT CHANGES
@ -103,7 +195,7 @@ CHANGES BETWEEN 2.12.1 and 2.13.0 (2023-Feb-09)
- The 'COLR' v1 API is now considered as stable.
https://learn.microsoft.com/en-us/typography/opentype/spec/colr
https://learn.microsoft.com/typography/opentype/spec/colr
II. MISCELLANEOUS
@ -333,6 +425,10 @@ CHANGES BETWEEN 2.10.4 and 2.11.0 (2021-Jul-18)
corresponding `FT_COLR_Paint` object, which contains details
on how to draw the respective 'COLR' v1 `Paint` table.
Please note that FreeType does *not* provide rendering support for
'COLR' v1 but only parsing of this table. You need a dedicated
graphics library like Skia or Cairo for rendering.
II. MISCELLANEOUS
@ -579,7 +675,7 @@ CHANGES BETWEEN 2.9.1 and 2.10.0 (2019-Mar-15)
Set text foreground color for palette index 0xFFFF.
FT_Get_Color_Glyph_Layer
Get color layers for a given glyph (using an interator
Get color layers for a given glyph (using an iterator
object).
FT_Bitmap_Blend
@ -2012,7 +2108,7 @@ CHANGES BETWEEN 2.4.10 and 2.4.11 (2012-Dec-20)
- Subpixel hinting support has been contributed by Infinality,
based on Greg Hitchcock's whitepaper at
https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx
https://learn.microsoft.com/typography/cleartype/truetypecleartype
Originally, it was a separate patch available from
@ -2985,7 +3081,7 @@ CHANGES BETWEEN 2.2 and 2.1.10
We provide patches for most of those rogue clients. See the
following page for more information:
https://www.freetype.org/freetype2/patches/rogue-patches.html
https://freetype.org/freetype2/patches/rogue-patches.html
Note that, as a convenience to our Unix desktop users, version
2.2 is *binary* compatible with FreeType 2.1.7, which means that
@ -3774,7 +3870,7 @@ CHANGES BETWEEN 2.1.3 and 2.1.2
quality since many nasty defaults have been suppressed. Please
visit the web page:
https://www.freetype.org/hinting/smooth-hinting.html
https://freetype.org/hinting/smooth-hinting.html
for additional details on this topic.
@ -4022,7 +4118,7 @@ CHANGES BETWEEN 2.1.0 and 2.0.9
"""
Portions of this software are copyright © 1996-2002 The
FreeType Project (www.freetype.org). All rights reserved.
FreeType Project (https://freetype.org). All rights reserved.
"""
- The default size of the render pool has been reduced to 16kByte.
@ -4033,7 +4129,7 @@ CHANGES BETWEEN 2.1.0 and 2.0.9
- The FreeType 2 redesign has begun. More information can be
found at this URL:
https://www.freetype.org/freetype2/redesign.html
https://freetype.org/freetype2/redesign.html
The following internal changes have been performed within the
sources of this release:
@ -4624,7 +4720,7 @@ CHANGES BETWEEN 2.0.2 and 2.0.1
For more information, see section I of the following document:
https://www.freetype.org/freetype2/docs/tutorial/step1.html
https://freetype.org/freetype2/docs/tutorial/step1.html
- Many, many comments have been added to the public source file in
order to automatically generate the API Reference through the
@ -4633,7 +4729,7 @@ CHANGES BETWEEN 2.0.2 and 2.0.1
The latter has been updated to support the grouping of sections
in chapters and better index sort. See:
https://www.freetype.org/freetype2/docs/reference/ft2-toc.html
https://freetype.org/freetype2/docs/reference/ft2-toc.html
III. CHANGES TO THE BUILD PROCESS
@ -5708,7 +5804,7 @@ Extensions support:
------------------------------------------------------------------------
Copyright (C) 2000-2024 by
Copyright (C) 2000-2025 by
David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used,

View File

@ -139,7 +139,7 @@ IV. Overriding default configuration and module headers
----------------------------------------------------------------------
Copyright (C) 2003-2024 by
Copyright (C) 2003-2025 by
David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used,

View File

@ -297,7 +297,7 @@ to access them.
------------------------------------------------------------------------
Copyright (C) 2002-2024 by
Copyright (C) 2002-2025 by
David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used,

View File

@ -49,7 +49,7 @@ Introduction
"""
Portions of this software are copyright © <year> The FreeType
Project (www.freetype.org). All rights reserved.
Project (https://freetype.org). All rights reserved.
"""
Please replace <year> with the value from the FreeType version you
@ -163,7 +163,7 @@ Legal Terms
Our home page can be found at
https://www.freetype.org
https://freetype.org
--- end of FTL.TXT ---

View File

@ -27,7 +27,7 @@ Other bugs have been registered at the savannah bugzilla of FreeType.
------------------------------------------------------------------------
Copyright (C) 2001-2024 by
Copyright (C) 2001-2025 by
David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used,

View File

@ -1,8 +0,0 @@
version = 1
[[annotations]]
path = "ft2build.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (c) 2001, 2012 David Turner, Robert Wilhelm, and Werner Lemberg"
SPDX-License-Identifier = "FTL OR GPL-2.0-only"

View File

@ -1,7 +0,0 @@
version = 1
[[annotations]]
path = "*"
precedence = "closest"
SPDX-FileCopyrightText = "Copyright (c) 2019 nyorain"
SPDX-License-Identifier = "BSL-1.0"

View File

@ -1,123 +0,0 @@
version = 1
[[annotations]]
path = "ftbzip2.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2010-2023 by Joel Klinghed."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "ftmac.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 1996-2023 by Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "ftgxval.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2004-2023 by Masatake YAMATO, Redhat K.K, David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "otsvg.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2022-2023 by David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "ftcid.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2007-2023 by Dereg Clegg and Michael Toftdal."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = ["freetype.h", "ftbbox.h", "ftcache.h", "fterrors.h", "ftglyph.h",
"ftimage.h", "ftlist.h", "ftmac.h", "ftmm.h", "ftmodapi.h", "ftoutln.h",
"ftrender.h", "ftsizes.h", "ftsnames.h", "ftsystem.h", "fttypes.h",
"t1tables.h", "ttnameid.h", "tttables.h", "tttags.h","ftchapters.h"]
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 1996-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "ftsynth.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2000-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = ["ftmoderr.h", "fttrigon.h"]
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2001-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = ["ftbdf.h", "fterrdef.h", "ftfntfmt.h", "ftgzip.h", "ftincrem.h", "ftpfr.h", "ftstroke.h"]
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2002-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "ftwinfnt.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2003-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = ["ftbitmap.h", "ftlzw.h", "ftotval.h"]
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2004-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "ftlcdfil.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2006-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "ftgasp.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2007-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "ftadvanc.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2008-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = ["ftdriver.h", "ftparams.h"]
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2017-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "ftcolor.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2018-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "ftlogging.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2020-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"

View File

@ -1,28 +0,0 @@
version = 1
[[annotations]]
path = "ftmodule.h"
precedence = "override"
SPDX-FileCopyrightText = "None"
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = ["mac-support.h", "integer-types.h", "ftoption.h", "ftheader.h", "ftconfig.h"]
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 1996-2023 by Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "ftstdlib.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2002-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "public-macros.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2020-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"

View File

@ -4,7 +4,7 @@
*
* ANSI-specific configuration file (specification only).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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.
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@ -158,12 +158,12 @@ FT_BEGIN_HEADER
/**************************************************************************
*
* If this macro is defined, try to use an inlined assembler version of the
* @FT_MulFix function, which is a 'hotspot' when loading and hinting
* glyphs, and which should be executed as fast as possible.
* If this macro is defined, try to use an inlined 64-bit or assembler
* version of the @FT_MulFix function, which is a 'hotspot' when loading
* and hinting glyphs, and which should be executed as fast as possible.
*
* Note that if your compiler or CPU is not supported, this will default to
* the standard and portable implementation found in `ftcalc.c`.
* If your compiler is not C99-compliant or CPU assembly is not supported,
* you can disable this option.
*/
#define FT_CONFIG_OPTION_INLINE_MULFIX
@ -293,6 +293,31 @@ FT_BEGIN_HEADER
/* #define FT_CONFIG_OPTION_USE_HARFBUZZ */
/**************************************************************************
*
* HarfBuzz dynamic support.
*
* Define this macro if you want the HarfBuzz library to be loaded at
* runtime instead of being linked to FreeType.
*
* This option has no effect if `FT_CONFIG_OPTION_USE_HARFBUZZ` is not
* defined.
*
* When this option is enabled, FreeType will try to load the HarfBuzz
* library at runtime, using `dlopen` or `LoadLibrary`, depending on the
* platform. On Microsoft platforms, the library name looked up is
* `libharfbuzz-0.dll`. On Apple platforms, the library name looked up
* is `libharfbuzz.0.dylib`. On all other platforms, the library name
* looked up is `libharfbuzz.so.0`. This name can be overridden by
* defining the macro `FT_LIBHARFBUZZ` at FreeType compilation time.
*
* If you use a build system like cmake or the `configure` script,
* options set by those programs have precedence, overwriting the value
* here with the configured one.
*/
/* #define FT_CONFIG_OPTION_USE_HARFBUZZ_DYNAMIC */
/**************************************************************************
*
* Brotli support.
@ -679,7 +704,7 @@ FT_BEGIN_HEADER
* defined.
*
* [1]
* https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx
* https://learn.microsoft.com/typography/cleartype/truetypecleartype
*/
#define TT_CONFIG_OPTION_SUBPIXEL_HINTING
@ -697,7 +722,7 @@ FT_BEGIN_HEADER
* flags array which can be used to disambiguate, but old fonts will not
* have them.
*
* https://www.microsoft.com/typography/otspec/glyf.htm
* https://learn.microsoft.com/typography/opentype/spec/glyf
* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html
*/
#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED
@ -760,10 +785,10 @@ FT_BEGIN_HEADER
/**************************************************************************
*
* Option `TT_CONFIG_OPTION_GPOS_KERNING` enables a basic GPOS kerning
* implementation (for TrueType fonts only). With this defined, FreeType
* is able to get kerning pair data from the GPOS 'kern' feature as well as
* legacy 'kern' tables; without this defined, FreeType will only be able
* to use legacy 'kern' tables.
* implementation (for TrueType and OpenType fonts only). With this
* defined, FreeType is able to get kerning pair data from the GPOS 'kern'
* feature as well as legacy 'kern' tables; without this defined, FreeType
* will only be able to use legacy 'kern' tables.
*
* Note that FreeType does not support more advanced GPOS layout features;
* even the 'kern' feature implemented here doesn't handle more

View File

@ -5,7 +5,7 @@
* ANSI-specific library and header configuration file (specification
* only).
*
* Copyright (C) 2002-2024 by
* Copyright (C) 2002-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
*
* FreeType integer types definitions.
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@ -17,6 +17,8 @@
#ifndef FREETYPE_CONFIG_INTEGER_TYPES_H_
#define FREETYPE_CONFIG_INTEGER_TYPES_H_
FT_BEGIN_HEADER
/* There are systems (like the Texas Instruments 'C54x) where a `char` */
/* has 16~bits. ANSI~C says that `sizeof(char)` is always~1. Since an */
/* `int` has 16~bits also for this system, `sizeof(int)` gives~1 which */
@ -242,9 +244,34 @@
#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */
#ifdef FT_INT64
typedef FT_INT64 FT_Int64;
typedef FT_UINT64 FT_UInt64;
#endif
# define FT_INT64_ZERO 0
#else /* !FT_INT64 */
/* we need to emulate 64-bit data types if none are available */
typedef struct FT_Int64_
{
FT_UInt32 lo;
FT_UInt32 hi;
} FT_Int64;
typedef struct FT_UInt64_
{
FT_UInt32 lo;
FT_UInt32 hi;
} FT_UInt64;
# define FT_INT64_ZERO { 0, 0 }
#endif /* !FT_INT64 */
FT_END_HEADER
#endif /* FREETYPE_CONFIG_INTEGER_TYPES_H_ */

View File

@ -4,7 +4,7 @@
*
* Mac/OS X support configuration header.
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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.
*
* Copyright (C) 2020-2024 by
* Copyright (C) 2020-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@ -62,8 +62,8 @@ FT_BEGIN_HEADER
* because it is needed by `FT_EXPORT`.
*/
/* Visual C, mingw */
#if defined( _WIN32 )
/* Visual C, MinGW, Cygwin */
#if defined( _WIN32 ) || defined( __CYGWIN__ )
#if defined( FT2_BUILD_LIBRARY ) && defined( DLL_EXPORT )
#define FT_PUBLIC_FUNCTION_ATTRIBUTE __declspec( dllexport )

View File

@ -4,7 +4,7 @@
*
* FreeType high-level API and common types (specification only).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@ -811,7 +811,7 @@ FT_BEGIN_HEADER
* FT_ENCODING_MS_SYMBOL ::
* Microsoft Symbol encoding, used to encode mathematical symbols and
* wingdings. For more information, see
* 'https://www.microsoft.com/typography/otspec/recom.htm#non-standard-symbol-fonts',
* 'https://learn.microsoft.com/typography/opentype/spec/recom#non-standard-symbol-fonts',
* 'http://www.kostis.net/charsets/symbol.htm', and
* 'http://www.kostis.net/charsets/wingding.htm'.
*
@ -1068,12 +1068,12 @@ FT_BEGIN_HEADER
* the face in the font file (starting with value~0). They are set
* to~0 if there is only one face in the font file.
*
* [Since 2.6.1] Bits 16-30 are relevant to GX and OpenType variation
* fonts only, holding the named instance index for the current face
* index (starting with value~1; value~0 indicates font access without
* a named instance). For non-variation fonts, bits 16-30 are ignored.
* If we have the third named instance of face~4, say, `face_index` is
* set to 0x00030004.
* [Since 2.6.1] Bits 16-30 are relevant to TrueType GX and OpenType
* Font Variations only, holding the named instance index for the
* current face index (starting with value~1; value~0 indicates font
* access without a named instance). For non-variation fonts, bits
* 16-30 are ignored. If we have the third named instance of face~4,
* say, `face_index` is set to 0x00030004.
*
* Bit 31 is always zero (that is, `face_index` is always a positive
* value).
@ -1092,10 +1092,10 @@ FT_BEGIN_HEADER
* the face; see @FT_STYLE_FLAG_XXX for the details.
*
* [Since 2.6.1] Bits 16-30 hold the number of named instances
* available for the current face if we have a GX or OpenType variation
* (sub)font. Bit 31 is always zero (that is, `style_flags` is always
* a positive value). Note that a variation font has always at least
* one named instance, namely the default instance.
* available for the current face if we have a TrueType GX or OpenType
* Font Variation. Bit 31 is always zero (that is, `style_flags` is
* always a positive value). Note that a variation font has always at
* least one named instance, namely the default instance.
*
* num_glyphs ::
* The number of glyphs in the face. If the face is scalable and has
@ -1159,7 +1159,7 @@ FT_BEGIN_HEADER
* Note that the bounding box might be off by (at least) one pixel for
* hinted fonts. See @FT_Size_Metrics for further discussion.
*
* Note that the bounding box does not vary in OpenType variation fonts
* Note that the bounding box does not vary in OpenType Font Variations
* and should only be used in relation to the default instance.
*
* units_per_EM ::
@ -1218,7 +1218,7 @@ FT_BEGIN_HEADER
* Fields may be changed after a call to @FT_Attach_File or
* @FT_Attach_Stream.
*
* For an OpenType variation font, the values of the following fields can
* For OpenType Font Variations, the values of the following fields can
* change after a call to @FT_Set_Var_Design_Coordinates (and friends) if
* the font contains an 'MVAR' table: `ascender`, `descender`, `height`,
* `underline_position`, and `underline_thickness`.
@ -1336,7 +1336,7 @@ FT_BEGIN_HEADER
* FT_FACE_FLAG_MULTIPLE_MASTERS ::
* The face contains multiple masters and is capable of interpolating
* between them. Supported formats are Adobe MM, TrueType GX, and
* OpenType variation fonts.
* OpenType Font Variations.
*
* See section @multiple_masters for API details.
*
@ -1609,7 +1609,7 @@ FT_BEGIN_HEADER
*
* @description:
* A macro that returns true whenever a face object is a named instance
* of a GX or OpenType variation font.
* of a TrueType GX or OpenType Font Variations.
*
* [Since 2.9] Changing the design coordinates with
* @FT_Set_Var_Design_Coordinates or @FT_Set_Var_Blend_Coordinates does
@ -2147,7 +2147,7 @@ FT_BEGIN_HEADER
* freed.
*
* [Since 2.10.1] If @FT_LOAD_NO_SCALE is set, outline coordinates of
* OpenType variation fonts for a selected instance are internally
* OpenType Font Variations for a selected instance are internally
* handled as 26.6 fractional font units but returned as (rounded)
* integers, as expected. To get unrounded font units, don't use
* @FT_LOAD_NO_SCALE but load the glyph with @FT_LOAD_NO_HINTING and
@ -2640,14 +2640,14 @@ FT_BEGIN_HEADER
* the face in the font file (starting with value~0). Set it to~0 if
* there is only one face in the font file.
*
* [Since 2.6.1] Bits 16-30 are relevant to GX and OpenType variation
* fonts only, specifying the named instance index for the current face
* index (starting with value~1; value~0 makes FreeType ignore named
* instances). For non-variation fonts, bits 16-30 are ignored.
* Assuming that you want to access the third named instance in face~4,
* `face_index` should be set to 0x00030004. If you want to access
* face~4 without variation handling, simply set `face_index` to
* value~4.
* [Since 2.6.1] Bits 16-30 are relevant to TrueType GX and OpenType
* Font Variations only, specifying the named instance index for the
* current face index (starting with value~1; value~0 makes FreeType
* ignore named instances). For non-variation fonts, bits 16-30 are
* ignored. Assuming that you want to access the third named instance
* in face~4, `face_index` should be set to 0x00030004. If you want
* to access face~4 without variation handling, simply set
* `face_index` to value~4.
*
* `FT_Open_Face` and its siblings can be used to quickly check whether
* the font format of a given font resource is supported by FreeType.
@ -2914,11 +2914,11 @@ FT_BEGIN_HEADER
* of the available glyphs at a given ppem value is available. FreeType
* silently uses outlines if there is no bitmap for a given glyph index.
*
* For GX and OpenType variation fonts, a bitmap strike makes sense only
* if the default instance is active (that is, no glyph variation takes
* place); otherwise, FreeType simply ignores bitmap strikes. The same
* is true for all named instances that are different from the default
* instance.
* For TrueType GX and OpenType Font Variations, a bitmap strike makes
* sense only if the default instance is active (that is, no glyph
* variation takes place); otherwise, FreeType simply ignores bitmap
* strikes. The same is true for all named instances that are different
* from the default instance.
*
* Don't use this function if you are using the FreeType cache API.
*/
@ -3078,7 +3078,7 @@ FT_BEGIN_HEADER
* is dependent entirely on how the size is defined in the source face.
* The font designer chooses the final size of each glyph relative to
* this size. For more information refer to
* 'https://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html'.
* 'https://freetype.org/freetype2/docs/glyphs/glyphs-2.html'.
*
* Contrary to @FT_Set_Char_Size, this function doesn't have special code
* to normalize zero-valued widths, heights, or resolutions, which are
@ -3441,8 +3441,10 @@ FT_BEGIN_HEADER
* blending of the color glyph layers associated with the glyph index,
* using the same bitmap format as embedded color bitmap images. This
* is mainly for convenience and works only for glyphs in 'COLR' v0
* tables (or glyphs in 'COLR' v1 tables that exclusively use v0
* features). For full control of color layers use
* tables. **There is no rendering support for 'COLR' v1** (with the
* exception of v1 tables that exclusively use v0 features)! You need
* a graphics library like Skia or Cairo to interpret the graphics
* commands stored in v1 tables. For full control of color layers use
* @FT_Get_Color_Glyph_Layer and FreeType's color functions like
* @FT_Palette_Select instead of setting @FT_LOAD_COLOR for rendering
* so that the client application can handle blending by itself.
@ -3895,8 +3897,10 @@ FT_BEGIN_HEADER
*
* This process can cost performance. There is an approximation that
* does not need to know about the background color; see
* https://bel.fi/alankila/lcd/ and
* https://bel.fi/alankila/lcd/alpcor.html for details.
* https://web.archive.org/web/20211019204945/https://bel.fi/alankila/lcd/
* and
* https://web.archive.org/web/20210211002939/https://bel.fi/alankila/lcd/alpcor.html
* for details.
*
* **ATTENTION**: Linear blending is even more important when dealing
* with subpixel-rendered glyphs to prevent color-fringing! A
@ -3993,13 +3997,13 @@ FT_BEGIN_HEADER
* out of the scope of this API function -- they can be implemented
* through format-specific interfaces.
*
* Note that, for TrueType fonts only, this can extract data from both
* the 'kern' table and the basic, pair-wise kerning feature from the
* GPOS table (with `TT_CONFIG_OPTION_GPOS_KERNING` enabled), though
* FreeType does not support the more advanced GPOS layout features; use
* a library like HarfBuzz for those instead. If a font has both a
* 'kern' table and kern features of a GPOS table, the 'kern' table will
* be used.
* Note that, for TrueType and OpenType fonts only, this can extract data
* from both the 'kern' table and the basic, pair-wise kerning feature
* from the GPOS table (with `TT_CONFIG_OPTION_GPOS_KERNING` enabled),
* though FreeType does not support the more advanced GPOS layout
* features; use a library like HarfBuzz for those instead. If a font
* has both a 'kern' table and kern features of a GPOS table, the 'kern'
* table will be used.
*
* Also note for right-to-left scripts, the functionality may differ for
* fonts with GPOS tables vs. 'kern' tables. For GPOS, right-to-left
@ -4530,7 +4534,7 @@ FT_BEGIN_HEADER
* table description in the OpenType specification for the meaning of the
* various flags (which get synthesized for non-OpenType subglyphs).
*
* https://docs.microsoft.com/en-us/typography/opentype/spec/glyf#composite-glyph-description
* https://learn.microsoft.com/typography/opentype/spec/glyf#composite-glyph-description
*
* @values:
* FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS ::
@ -4593,7 +4597,7 @@ FT_BEGIN_HEADER
* interpreted depending on the flags returned in `*p_flags`. See the
* OpenType specification for details.
*
* https://docs.microsoft.com/en-us/typography/opentype/spec/glyf#composite-glyph-description
* https://learn.microsoft.com/typography/opentype/spec/glyf#composite-glyph-description
*
*/
FT_EXPORT( FT_Error )
@ -4619,7 +4623,7 @@ FT_BEGIN_HEADER
* associated with a font.
*
* See
* https://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/FontPolicies.pdf
* https://adobe-type-tools.github.io/font-tech-notes/pdfs/AcrobatDC_FontPolicies.pdf
* for more details.
*
* @values:
@ -5173,8 +5177,8 @@ FT_BEGIN_HEADER
*
*/
#define FREETYPE_MAJOR 2
#define FREETYPE_MINOR 13
#define FREETYPE_PATCH 3
#define FREETYPE_MINOR 14
#define FREETYPE_PATCH 0
/**************************************************************************

View File

@ -4,7 +4,7 @@
*
* Quick computation of advance widths (specification only).
*
* Copyright (C) 2008-2024 by
* Copyright (C) 2008-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
*
* FreeType exact bbox computation (specification).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 2002-2024 by
* Copyright (C) 2002-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 2004-2024 by
* Copyright (C) 2004-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

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

View File

@ -4,7 +4,7 @@
*
* FreeType Cache subsystem (specification).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 2007-2024 by
* Copyright (C) 2007-2025 by
* Dereg Clegg and Michael Toftdal.
*
* 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).
*
* Copyright (C) 2018-2024 by
* Copyright (C) 2018-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@ -317,6 +317,15 @@ FT_BEGIN_HEADER
* @description:
* The functions described here allow access of colored glyph layer data
* in OpenType's 'COLR' tables.
*
* Note that FreeType does *not* provide rendering in general of glyphs
* that use a 'COLR' table! While FreeType has very limited rendering
* support for 'COLR' v0 tables (without a possibility to change the
* color palette) via @FT_Render_Glyph, there is no such convenience
* code for 'COLR' v1 tables -- while it appears that v1 is simply an
* 'improved' version of v0, this is not the case: it is a completely
* different color font format, and you need a dedicated graphics
* library like Skia or Cairo to handle a v1 table's drawing commands.
*/
@ -359,7 +368,7 @@ FT_BEGIN_HEADER
* iteratively retrieve the colored glyph layers associated with the
* current glyph slot.
*
* https://docs.microsoft.com/en-us/typography/opentype/spec/colr
* https://learn.microsoft.com/typography/opentype/spec/colr
*
* The glyph layer data for a given glyph index, if present, provides an
* alternative, multi-color glyph representation: Instead of rendering
@ -1518,7 +1527,7 @@ FT_BEGIN_HEADER
*
* @return:
* Value~1 if a clip box is found. If no clip box is found or an error
* occured, value~0 is returned.
* occurred, value~0 is returned.
*
* @note:
* To retrieve the clip box in font units, reset scale to units-per-em
@ -1646,7 +1655,7 @@ FT_BEGIN_HEADER
*
* @return:
* Value~1 if everything is OK. Value~0 if no details can be found for
* this paint or any other error occured.
* this paint or any other error occurred.
*
* @since:
* 2.13

View File

@ -4,7 +4,7 @@
*
* FreeType API for controlling driver modules (specification only).
*
* Copyright (C) 2017-2024 by
* Copyright (C) 2017-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@ -282,7 +282,7 @@ FT_BEGIN_HEADER
* minimize hinting techniques that were problematic with the extra
* resolution of ClearType; see
* http://rastertragedy.com/RTRCh4.htm#Sec1 and
* https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx.
* https://learn.microsoft.com/typography/cleartype/truetypecleartype.
* This technique is not to be confused with ClearType compatible widths.
* ClearType backward compatibility has no direct impact on changing
* advance widths, but there might be an indirect impact on disabling
@ -784,7 +784,7 @@ FT_BEGIN_HEADER
*
* Details on subpixel hinting and some of the necessary tweaks can be
* found in Greg Hitchcock's whitepaper at
* 'https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx'.
* 'https://learn.microsoft.com/typography/cleartype/truetypecleartype'.
* Note that FreeType currently doesn't really 'subpixel hint' (6x1, 6x2,
* or 6x5 supersampling) like discussed in the paper. Depending on the
* chosen interpreter, it simply ignores instructions on vertical stems

View File

@ -4,7 +4,7 @@
*
* FreeType error codes (specification).
*
* Copyright (C) 2002-2024 by
* Copyright (C) 2002-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
*
* FreeType error code handling (specification).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
*
* Support functions for font formats.
*
* Copyright (C) 2002-2024 by
* Copyright (C) 2002-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 2007-2024 by
* Copyright (C) 2007-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 2004-2024 by
* Copyright (C) 2004-2025 by
* Masatake YAMATO, Redhat K.K,
* David Turner, Robert Wilhelm, and Werner Lemberg.
*

View File

@ -4,7 +4,7 @@
*
* Gzip-compressed stream support.
*
* Copyright (C) 2002-2024 by
* Copyright (C) 2002-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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
* (specification).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@ -267,6 +267,10 @@ FT_BEGIN_HEADER
* *logical* one. For example, if @FT_Pixel_Mode is set to
* `FT_PIXEL_MODE_LCD`, the logical width is a just a third of the
* physical one.
*
* An empty bitmap with a NULL `buffer` is valid, with `rows` and/or
* `pitch` also set to 0. Such bitmaps might be produced while rendering
* empty or degenerate outlines.
*/
typedef struct FT_Bitmap_
{
@ -439,7 +443,7 @@ FT_BEGIN_HEADER
* rasterizer; see the `tags` field in @FT_Outline.
*
* Please refer to the description of the 'SCANTYPE' instruction in the
* [OpenType specification](https://learn.microsoft.com/en-us/typography/opentype/spec/tt_instructions#scantype)
* [OpenType specification](https://learn.microsoft.com/typography/opentype/spec/tt_instructions#scantype)
* how simple drop-outs, smart drop-outs, and stubs are defined.
*/
#define FT_OUTLINE_NONE 0x0

View File

@ -4,7 +4,7 @@
*
* FreeType incremental loading (specification).
*
* Copyright (C) 2002-2024 by
* Copyright (C) 2002-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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
* (specification).
*
* Copyright (C) 2006-2024 by
* Copyright (C) 2006-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
*
* Generic list support for FreeType (specification).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
*
* Additional debugging APIs.
*
* Copyright (C) 2020-2024 by
* Copyright (C) 2020-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

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

View File

@ -4,7 +4,7 @@
*
* Additional Mac-specific API.
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -2,9 +2,9 @@
*
* ftmm.h
*
* FreeType Multiple Master font interface (specification).
* FreeType variation font interface (specification).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@ -37,24 +37,79 @@ FT_BEGIN_HEADER
* multiple_masters
*
* @title:
* Multiple Masters
* OpenType Font Variations, TrueType GX, and Adobe MM Fonts
*
* @abstract:
* How to manage Multiple Masters fonts.
* How to manage variable fonts with multiple design axes.
*
* @description:
* The following types and functions are used to manage Multiple Master
* fonts, i.e., the selection of specific design instances by setting
* design axis coordinates.
* The following types and functions manage OpenType Font Variations,
* Adobe Multiple Master (MM) fonts, and Apple TrueType GX fonts. These
* formats have in common that they allow the selection of specific
* design instances by setting design coordinates for one or more axes
* like font weight or width.
*
* Besides Adobe MM fonts, the interface supports Apple's TrueType GX and
* OpenType variation fonts. Some of the routines only work with Adobe
* MM fonts, others will work with all three types. They are similar
* enough that a consistent interface makes sense.
* For historical reasons there are two interfaces. The first, older one
* can be used with Adobe MM fonts only, and the second, newer one is a
* unified interface that handles all three font formats. However, some
* differences remain and are documented accordingly; in particular,
* Adobe MM fonts don't have named instances (see below).
*
* For Adobe MM fonts, macro @FT_IS_SFNT returns false. For GX and
* OpenType variation fonts, it returns true.
* For Adobe MM fonts, macro @FT_IS_SFNT returns false. For TrueType GX
* and OpenType Font Variations, it returns true.
*
* We use mostly the terminology of the OpenType standard. Here are some
* important technical terms.
*
* * A 'named instance' is a tuple of design coordinates that has a
* string ID (i.e., an index into the font's 'name' table) associated
* with it. The font can tell the user that, for example,
* [Weight=700,Width=110] is 'Bold'. Another name for 'named instance'
* is 'named style'.
*
* Adobe MM fonts don't have named instances.
*
* * The 'default instance' of a variation font is that instance for
* which the nth axis coordinate is equal to the nth default axis
* coordinate (i.e., `axis[n].def` as specified in the @FT_MM_Var
* structure), with~n covering all axes. In TrueType GX and OpenType
* Font Variations, the default instance is explicitly given. In Adobe
* MM fonts, the `WeightVector` entry as found in the font file is
* taken as the default instance.
*
* For TrueType GX and OpenType Font Variations, FreeType synthesizes
* a named instance for the default instance if the font does not
* contain such an entry.
*
* * 'Design coordinates' are the axis values found in a variation font
* file. Their meaning is specified by the font designer and the
* values are rather arbitrary.
*
* For example, the 'weight' axis in design coordinates might vary
* between 100 (thin) and 900 (heavy) in font~A, while font~B
* contains values between 400 (normal) and 800 (extra bold).
*
* * 'Normalized coordinates' are design coordinates mapped to a standard
* range; they are also called 'blend coordinates'.
*
* For TrueType GX and OpenType Font Variations, the range is [-1;1],
* with the minimum mapped to value~-1, the default mapped to
* value~0, and the maximum mapped to value~1, and all other
* coordinates mapped to intervening points. Please look up the
* [OpenType
* specification](https://learn.microsoft.com/en-us/typography/opentype/spec/otvaroverview)
* on how this mapping works in detail.
*
* For Adobe MM fonts, this standard range is [0;1], with the minimum
* mapped to value~0 and the maximum mapped to value~1, and all other
* coordinates mapped to intervening points. Please look up [Adobe
* TechNote
* #5015](https://adobe-type-tools.github.io/font-tech-notes/pdfs/5015.Type1_Supp.pdf)
* on how this mapping works in detail.
*
* Assuming that the two fonts in the previous example are OpenType
* Font Variations, both font~A's [100;900] and font~B's [400;800]
* coordinate ranges get mapped to [-1;1].
*/
@ -64,14 +119,14 @@ FT_BEGIN_HEADER
* T1_MAX_MM_XXX
*
* @description:
* Multiple Masters limits as defined in their specifications.
* Adobe MM font limits as defined in their specifications.
*
* @values:
* T1_MAX_MM_AXIS ::
* The maximum number of Multiple Masters axes.
* The maximum number of Adobe MM font axes.
*
* T1_MAX_MM_DESIGNS ::
* The maximum number of Multiple Masters designs.
* The maximum number of Adobe MM font designs.
*
* T1_MAX_MM_MAP_POINTS ::
* The maximum number of elements in a design map.
@ -88,11 +143,10 @@ FT_BEGIN_HEADER
* FT_MM_Axis
*
* @description:
* A structure to model a given axis in design space for Multiple Masters
* fonts.
* A structure to model a given axis in design space for Adobe MM fonts.
*
* This structure can't be used for TrueType GX or OpenType variation
* fonts.
* This structure can't be used with TrueType GX or OpenType Font
* Variations.
*
* @fields:
* name ::
@ -119,17 +173,17 @@ FT_BEGIN_HEADER
* FT_Multi_Master
*
* @description:
* A structure to model the axes and space of a Multiple Masters font.
* A structure to model the axes and space of an Adobe MM font.
*
* This structure can't be used for TrueType GX or OpenType variation
* fonts.
* This structure can't be used with TrueType GX or OpenType Font
* Variations.
*
* @fields:
* num_axis ::
* Number of axes. Cannot exceed~4.
*
* num_designs ::
* Number of designs; should be normally 2^num_axis even though the
* Number of designs; should be normally `2^num_axis` even though the
* Type~1 specification strangely allows for intermediate designs to be
* present. This number cannot exceed~16.
*
@ -151,13 +205,13 @@ FT_BEGIN_HEADER
* FT_Var_Axis
*
* @description:
* A structure to model a given axis in design space for Multiple
* Masters, TrueType GX, and OpenType variation fonts.
* A structure to model a given axis in design space for Adobe MM fonts,
* TrueType GX, and OpenType Font Variations.
*
* @fields:
* name ::
* The axis's name. Not always meaningful for TrueType GX or OpenType
* variation fonts.
* Font Variations.
*
* minimum ::
* The axis's minimum design coordinate.
@ -171,17 +225,17 @@ FT_BEGIN_HEADER
*
* tag ::
* The axis's tag (the equivalent to 'name' for TrueType GX and
* OpenType variation fonts). FreeType provides default values for
* OpenType Font Variations). FreeType provides default values for
* Adobe MM fonts if possible.
*
* strid ::
* The axis name entry in the font's 'name' table. This is another
* (and often better) version of the 'name' field for TrueType GX or
* OpenType variation fonts. Not meaningful for Adobe MM fonts.
* OpenType Font Variations. Not meaningful for Adobe MM fonts.
*
* @note:
* The fields `minimum`, `def`, and `maximum` are 16.16 fractional values
* for TrueType GX and OpenType variation fonts. For Adobe MM fonts, the
* for TrueType GX and OpenType Font Variations. For Adobe MM fonts, the
* values are whole numbers (i.e., the fractional part is zero).
*/
typedef struct FT_Var_Axis_
@ -205,7 +259,7 @@ FT_BEGIN_HEADER
*
* @description:
* A structure to model a named instance in a TrueType GX or OpenType
* variation font.
* Font Variations.
*
* This structure can't be used for Adobe MM fonts.
*
@ -215,11 +269,11 @@ FT_BEGIN_HEADER
* entry for each axis.
*
* strid ::
* The entry in 'name' table identifying this instance.
* An index into the 'name' table identifying this instance.
*
* psid ::
* The entry in 'name' table identifying a PostScript name for this
* instance. Value 0xFFFF indicates a missing entry.
* An index into the 'name' table identifying a PostScript name for
* this instance. Value 0xFFFF indicates a missing entry.
*/
typedef struct FT_Var_Named_Style_
{
@ -236,39 +290,33 @@ FT_BEGIN_HEADER
* FT_MM_Var
*
* @description:
* A structure to model the axes and space of an Adobe MM, TrueType GX,
* or OpenType variation font.
* A structure to model the axes and space of Adobe MM fonts, TrueType
* GX, or OpenType Font Variations.
*
* Some fields are specific to one format and not to the others.
*
* @fields:
* num_axis ::
* The number of axes. The maximum value is~4 for Adobe MM fonts; no
* limit in TrueType GX or OpenType variation fonts.
* limit in TrueType GX or OpenType Font Variations.
*
* num_designs ::
* The number of designs; should be normally 2^num_axis for Adobe MM
* fonts. Not meaningful for TrueType GX or OpenType variation fonts
* The number of designs; should be normally `2^num_axis` for Adobe MM
* fonts. Not meaningful for TrueType GX or OpenType Font Variations
* (where every glyph could have a different number of designs).
*
* num_namedstyles ::
* The number of named styles; a 'named style' is a tuple of design
* coordinates that has a string ID (in the 'name' table) associated
* with it. The font can tell the user that, for example,
* [Weight=1.5,Width=1.1] is 'Bold'. Another name for 'named style' is
* 'named instance'.
*
* For Adobe Multiple Masters fonts, this value is always zero because
* the format does not support named styles.
* The number of named instances. For Adobe MM fonts, this value is
* always zero.
*
* axis ::
* An axis descriptor table. TrueType GX and OpenType variation fonts
* An axis descriptor table. TrueType GX and OpenType Font Variations
* contain slightly more data than Adobe MM fonts. Memory management
* of this pointer is done internally by FreeType.
*
* namedstyle ::
* A named style (instance) table. Only meaningful for TrueType GX and
* OpenType variation fonts. Memory management of this pointer is done
* An array of named instances. Only meaningful for TrueType GX and
* OpenType Font Variations. Memory management of this pointer is done
* internally by FreeType.
*/
typedef struct FT_MM_Var_
@ -290,8 +338,8 @@ FT_BEGIN_HEADER
* @description:
* Retrieve a variation descriptor of a given Adobe MM font.
*
* This function can't be used with TrueType GX or OpenType variation
* fonts.
* This function can't be used with TrueType GX or OpenType Font
* Variations.
*
* @input:
* face ::
@ -299,7 +347,7 @@ FT_BEGIN_HEADER
*
* @output:
* amaster ::
* The Multiple Masters descriptor.
* The Adobe MM font's variation descriptor.
*
* @return:
* FreeType error code. 0~means success.
@ -366,8 +414,8 @@ FT_BEGIN_HEADER
* For Adobe MM fonts, choose an interpolated font design through design
* coordinates.
*
* This function can't be used with TrueType GX or OpenType variation
* fonts.
* This function can't be used with TrueType GX or OpenType Font
* Variations.
*
* @inout:
* face ::
@ -391,8 +439,8 @@ FT_BEGIN_HEADER
*
* [Since 2.9] If `num_coords` is larger than zero, this function sets
* the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field
* (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero,
* this bit flag gets unset.
* (i.e., @FT_IS_VARIATION returns true). If `num_coords` is zero, this
* bit flag gets unset.
*/
FT_EXPORT( FT_Error )
FT_Set_MM_Design_Coordinates( FT_Face face,
@ -428,7 +476,7 @@ FT_BEGIN_HEADER
*
* @note:
* The design coordinates are 16.16 fractional values for TrueType GX and
* OpenType variation fonts. For Adobe MM fonts, the values are supposed
* OpenType Font Variations. For Adobe MM fonts, the values are supposed
* to be whole numbers (i.e., the fractional part is zero).
*
* [Since 2.8.1] To reset all axes to the default values, call the
@ -438,8 +486,14 @@ FT_BEGIN_HEADER
*
* [Since 2.9] If `num_coords` is larger than zero, this function sets
* the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field
* (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero,
* this bit flag gets unset.
* (i.e., @FT_IS_VARIATION returns true). If `num_coords` is zero, this
* bit flag gets unset.
*
* [Since 2.14] This function also sets the @FT_FACE_FLAG_VARIATION bit
* in @FT_Face's `face_flags` field (i.e., @FT_IS_VARIATION returns
* true) if any of the provided coordinates is different from the face's
* default value for the corresponding axis, that is, the set up face is
* not at its default position.
*/
FT_EXPORT( FT_Error )
FT_Set_Var_Design_Coordinates( FT_Face face,
@ -468,14 +522,14 @@ FT_BEGIN_HEADER
*
* @output:
* coords ::
* The design coordinates array.
* The design coordinates array, which must be allocated by the user.
*
* @return:
* 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 whole
* OpenType Font Variations. For Adobe MM fonts, the values are whole
* numbers (i.e., the fractional part is zero).
*
* @since:
@ -493,8 +547,7 @@ FT_BEGIN_HEADER
* FT_Set_MM_Blend_Coordinates
*
* @description:
* Choose an interpolated font design through normalized blend
* coordinates.
* Choose an interpolated font design through normalized coordinates.
*
* This function works with all supported variation formats.
*
@ -509,9 +562,10 @@ FT_BEGIN_HEADER
* the number of axes, use default values for the remaining axes.
*
* coords ::
* The design coordinates array. Each element is a 16.16 fractional
* value and must be between 0 and 1.0 for Adobe MM fonts, and between
* -1.0 and 1.0 for TrueType GX and OpenType variation fonts.
* The normalized coordinates array. Each element is a 16.16
* fractional value and must be between 0 and 1.0 for Adobe MM fonts,
* and between -1.0 and 1.0 for TrueType GX and OpenType Font
* Variations.
*
* @return:
* FreeType error code. 0~means success.
@ -524,8 +578,14 @@ FT_BEGIN_HEADER
*
* [Since 2.9] If `num_coords` is larger than zero, this function sets
* the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field
* (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero,
* this bit flag gets unset.
* (i.e., @FT_IS_VARIATION returns true). If `num_coords` is zero, this
* bit flag gets unset.
*
* [Since 2.14] This function also sets the @FT_FACE_FLAG_VARIATION bit
* in @FT_Face's `face_flags` field (i.e., @FT_IS_VARIATION returns
* true) if any of the provided coordinates is different from the face's
* default value for the corresponding axis, that is, the set up face is
* not at its default position.
*/
FT_EXPORT( FT_Error )
FT_Set_MM_Blend_Coordinates( FT_Face face,
@ -539,8 +599,8 @@ FT_BEGIN_HEADER
* FT_Get_MM_Blend_Coordinates
*
* @description:
* Get the normalized blend coordinates of the currently selected
* interpolated font.
* Get the normalized coordinates of the currently selected interpolated
* font.
*
* This function works with all supported variation formats.
*
@ -549,14 +609,14 @@ FT_BEGIN_HEADER
* A handle to the source face.
*
* num_coords ::
* The number of normalized blend coordinates to retrieve. If it is
* larger than the number of axes, set the excess values to~0.5 for
* Adobe MM fonts, and to~0 for TrueType GX and OpenType variation
* fonts.
* The number of normalized coordinates to retrieve. If it is larger
* than the number of axes, set the excess values to~0.5 for Adobe MM
* fonts, and to~0 for TrueType GX and OpenType Font Variations.
*
* @output:
* coords ::
* The normalized blend coordinates array (as 16.16 fractional values).
* The normalized coordinates array (as 16.16 fractional values), which
* must be allocated by the user.
*
* @return:
* FreeType error code. 0~means success.
@ -610,8 +670,8 @@ FT_BEGIN_HEADER
* For Adobe MM fonts, choose an interpolated font design by directly
* setting the weight vector.
*
* This function can't be used with TrueType GX or OpenType variation
* fonts.
* This function can't be used with TrueType GX or OpenType Font
* Variations.
*
* @inout:
* face ::
@ -630,16 +690,16 @@ FT_BEGIN_HEADER
* FreeType error code. 0~means success.
*
* @note:
* Adobe Multiple Master fonts limit the number of designs, and thus the
* length of the weight vector to 16~elements.
* Adobe MM fonts limit the number of designs, and thus the length of the
* weight vector, to 16~elements.
*
* If `len` is larger than zero, this function sets the
* @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field (i.e.,
* @FT_IS_VARIATION will return true). If `len` is zero, this bit flag
* is unset and the weight vector array is reset to the default values.
* @FT_IS_VARIATION returns true). If `len` is zero, this bit flag is
* unset and the weight vector array is reset to the default values.
*
* The Adobe documentation also states that the values in the
* WeightVector array must total 1.0 +/-~0.001. In practice this does
* `WeightVector` array must total 1.0 +/-~0.001. In practice this does
* not seem to be enforced, so is not enforced here, either.
*
* @since:
@ -659,8 +719,8 @@ FT_BEGIN_HEADER
* @description:
* For Adobe MM fonts, retrieve the current weight vector of the font.
*
* This function can't be used with TrueType GX or OpenType variation
* fonts.
* This function can't be used with TrueType GX or OpenType Font
* Variations.
*
* @inout:
* face ::
@ -677,14 +737,14 @@ FT_BEGIN_HEADER
*
* @output:
* weightvector ::
* An array to be filled.
* An array to be filled; it must be allocated by the user.
*
* @return:
* FreeType error code. 0~means success.
*
* @note:
* Adobe Multiple Master fonts limit the number of designs, and thus the
* length of the WeightVector to~16.
* Adobe MM fonts limit the number of designs, and thus the length of the
* weight vector, to~16 elements.
*
* @since:
* 2.10
@ -760,8 +820,8 @@ FT_BEGIN_HEADER
* A handle to the source face.
*
* instance_index ::
* The index of the requested instance, starting with value 1. If set
* to value 0, FreeType switches to font access without a named
* The index of the requested instance, starting with value~1. If set
* to value~0, FreeType switches to font access without a named
* instance.
*
* @return:
@ -771,11 +831,11 @@ FT_BEGIN_HEADER
* The function uses the value of `instance_index` to set bits 16-30 of
* the face's `face_index` field. It also resets any variation applied
* to the font, and the @FT_FACE_FLAG_VARIATION bit of the face's
* `face_flags` field gets reset to zero (i.e., @FT_IS_VARIATION will
* return false).
* `face_flags` field gets reset to zero (i.e., @FT_IS_VARIATION returns
* false).
*
* For Adobe MM fonts (which don't have named instances) this function
* simply resets the current face to the default instance.
* For Adobe MM fonts, this function resets the current face to the
* default instance.
*
* @since:
* 2.9
@ -794,10 +854,6 @@ FT_BEGIN_HEADER
* Retrieve the index of the default named instance, to be used with
* @FT_Set_Named_Instance.
*
* The default instance of a variation font is that instance for which
* the nth axis coordinate is equal to `axis[n].def` (as specified in the
* @FT_MM_Var structure), with~n covering all axes.
*
* FreeType synthesizes a named instance for the default instance if the
* font does not contain such an entry.
*
@ -813,8 +869,8 @@ FT_BEGIN_HEADER
* FreeType error code. 0~means success.
*
* @note:
* For Adobe MM fonts (which don't have named instances) this function
* always returns zero for `instance_index`.
* For Adobe MM fonts, this function always returns zero for
* `instance_index`.
*
* @since:
* 2.13.1

View File

@ -4,7 +4,7 @@
*
* FreeType modules public interface (specification).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

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

View File

@ -4,7 +4,7 @@
*
* FreeType API for validating OpenType tables (specification).
*
* Copyright (C) 2004-2024 by
* Copyright (C) 2004-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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
* most scalable font formats (specification).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 2017-2024 by
* Copyright (C) 2017-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
*
* FreeType API for accessing PFR-specific data (specification only).
*
* Copyright (C) 2002-2024 by
* Copyright (C) 2002-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
*
* FreeType size objects management (specification).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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!
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
*
* FreeType path stroker (specification).
*
* Copyright (C) 2002-2024 by
* Copyright (C) 2002-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -5,7 +5,7 @@
* FreeType synthesizing code for emboldening and slanting
* (specification).
*
* Copyright (C) 2000-2024 by
* Copyright (C) 2000-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
*
* FreeType low-level system interface definition (specification).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
*
* FreeType trigonometric functions (specification).
*
* Copyright (C) 2001-2024 by
* Copyright (C) 2001-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
*
* FreeType API for accessing Windows fnt-specific data.
*
* Copyright (C) 2003-2024 by
* Copyright (C) 2003-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@ -93,8 +93,7 @@ FT_BEGIN_HEADER
* second default codepage that most international versions of Windows
* have. It is one of the OEM codepages from
*
* https://docs.microsoft.com/en-us/windows/desktop/intl/code-page-identifiers
* ,
* https://learn.microsoft.com/windows/win32/intl/code-page-identifiers ,
*
* and is used for the 'DOS boxes', to support legacy applications. A
* German Windows version for example usually uses ANSI codepage 1252

View File

@ -1,81 +0,0 @@
version = 1
[[annotations]]
path = ["autohint.h", "cfftypes.h", "ftcalc.h", "ftdebug.h", "ftdrv.h",
"ftobjs.h", "ftstream.h", "psaux.h", "sfnt.h", "t1types.h",
"tttypes.h", "wofftypes.h", "ftmemory.h"]
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 1996-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "pshints.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2001-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = ["ftgloadr.h", "fttrace.h"]
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2002-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "ftserv.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2003-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "ftvalid.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2004-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = ["cffotypes.h", "ftpsprop.h"]
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2017-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "compiler-macros.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2020-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "svginterface.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2022-2023 by David Turner, Robert Wilhelm, Werner Lemberg , and Moazin Khatti."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "ftmmtypes.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2022-2023 by David Turner, Robert Wilhelm, Werner Lemberg, George Williams, and Dominik Röttsches."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "ftrfork.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2004-2023 by Masatake YAMATO and Redhat K.K."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "fthash.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = ["Copyright 2000 Computing Research Labs, New Mexico State University.",
"Copyright 2001-2015 Francesco Zappa Nardelli"]
SPDX-License-Identifier = "MIT"

View File

@ -4,7 +4,7 @@
*
* High-level 'autohint' module-specific interface (specification).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 2017-2024 by
* Copyright (C) 2017-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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
* only).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
*
* Compiler-specific macro definitions used internally by FreeType.
*
* Copyright (C) 2020-2024 by
* Copyright (C) 2020-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@ -128,8 +128,8 @@ FT_BEGIN_HEADER
* before a function declaration.
*/
/* Visual C, mingw */
#if defined( _WIN32 )
/* Visual C, MinGW, Cygwin */
#if defined( _WIN32 ) || defined( __CYGWIN__ )
#define FT_INTERNAL_FUNCTION_ATTRIBUTE /* empty */
/* gcc, clang */

View File

@ -4,7 +4,7 @@
*
* Arithmetic computations (specification).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@ -27,17 +27,87 @@
FT_BEGIN_HEADER
/*
* The following macros have two purposes.
*
* - Tag places where overflow is expected and harmless.
*
* - Avoid run-time undefined behavior sanitizer errors.
*
* Use with care!
*/
#define ADD_INT( a, b ) \
(FT_Int)( (FT_UInt)(a) + (FT_UInt)(b) )
#define SUB_INT( a, b ) \
(FT_Int)( (FT_UInt)(a) - (FT_UInt)(b) )
#define MUL_INT( a, b ) \
(FT_Int)( (FT_UInt)(a) * (FT_UInt)(b) )
#define NEG_INT( a ) \
(FT_Int)( (FT_UInt)0 - (FT_UInt)(a) )
#define ADD_LONG( a, b ) \
(FT_Long)( (FT_ULong)(a) + (FT_ULong)(b) )
#define SUB_LONG( a, b ) \
(FT_Long)( (FT_ULong)(a) - (FT_ULong)(b) )
#define MUL_LONG( a, b ) \
(FT_Long)( (FT_ULong)(a) * (FT_ULong)(b) )
#define NEG_LONG( a ) \
(FT_Long)( (FT_ULong)0 - (FT_ULong)(a) )
#define ADD_INT32( a, b ) \
(FT_Int32)( (FT_UInt32)(a) + (FT_UInt32)(b) )
#define SUB_INT32( a, b ) \
(FT_Int32)( (FT_UInt32)(a) - (FT_UInt32)(b) )
#define MUL_INT32( a, b ) \
(FT_Int32)( (FT_UInt32)(a) * (FT_UInt32)(b) )
#define NEG_INT32( a ) \
(FT_Int32)( (FT_UInt32)0 - (FT_UInt32)(a) )
#ifdef FT_INT64
#define ADD_INT64( a, b ) \
(FT_Int64)( (FT_UInt64)(a) + (FT_UInt64)(b) )
#define SUB_INT64( a, b ) \
(FT_Int64)( (FT_UInt64)(a) - (FT_UInt64)(b) )
#define MUL_INT64( a, b ) \
(FT_Int64)( (FT_UInt64)(a) * (FT_UInt64)(b) )
#define NEG_INT64( a ) \
(FT_Int64)( (FT_UInt64)0 - (FT_UInt64)(a) )
#endif /* FT_INT64 */
/**************************************************************************
*
* FT_MulDiv() and FT_MulFix() are declared in freetype.h.
*
*/
#ifndef FT_CONFIG_OPTION_NO_ASSEMBLER
/* Provide assembler fragments for performance-critical functions. */
/* These must be defined `static __inline__' with GCC. */
#ifdef FT_CONFIG_OPTION_INLINE_MULFIX
#if defined( __CC_ARM ) || defined( __ARMCC__ ) /* RVCT */
#ifdef FT_INT64
static inline FT_Long
FT_MulFix_64( FT_Long a,
FT_Long b )
{
FT_Int64 ab = MUL_INT64( a, b );
ab = ADD_INT64( ab, 0x8000 + ( ab >> 63 ) ); /* rounding phase */
return (FT_Long)( ab >> 16 );
}
#define FT_MulFix( a, b ) FT_MulFix_64( a, b )
#elif !defined( FT_CONFIG_OPTION_NO_ASSEMBLER )
/* Provide 32-bit assembler fragments for optimized FT_MulFix. */
/* These must be defined `static __inline__' or similar. */
#if defined( __arm__ ) && \
( defined( __thumb2__ ) || !defined( __thumb__ ) )
#define FT_MULFIX_ASSEMBLER FT_MulFix_arm
@ -49,6 +119,7 @@ FT_BEGIN_HEADER
{
FT_Int32 t, t2;
#if defined( __CC_ARM ) || defined( __ARMCC__ ) /* RVCT */
__asm
{
@ -60,28 +131,8 @@ FT_BEGIN_HEADER
mov a, t2, lsr #16 /* a = t2 >> 16 */
orr a, a, t, lsl #16 /* a |= t << 16 */
}
return a;
}
#endif /* __CC_ARM || __ARMCC__ */
#ifdef __GNUC__
#if defined( __arm__ ) && \
( !defined( __thumb__ ) || defined( __thumb2__ ) ) && \
!( defined( __CC_ARM ) || defined( __ARMCC__ ) )
#define FT_MULFIX_ASSEMBLER FT_MulFix_arm
/* documentation is in freetype.h */
static __inline__ FT_Int32
FT_MulFix_arm( FT_Int32 a,
FT_Int32 b )
{
FT_Int32 t, t2;
#elif defined( __GNUC__ )
__asm__ __volatile__ (
"smull %1, %2, %4, %3\n\t" /* (lo=%1,hi=%2) = a*b */
@ -98,26 +149,25 @@ FT_BEGIN_HEADER
: "=r"(a), "=&r"(t2), "=&r"(t)
: "r"(a), "r"(b)
: "cc" );
#endif
return a;
}
#endif /* __arm__ && */
/* ( __thumb2__ || !__thumb__ ) && */
/* !( __CC_ARM || __ARMCC__ ) */
#if defined( __i386__ )
#elif defined( __i386__ ) || defined( _M_IX86 )
#define FT_MULFIX_ASSEMBLER FT_MulFix_i386
/* documentation is in freetype.h */
static __inline__ FT_Int32
static __inline FT_Int32
FT_MulFix_i386( FT_Int32 a,
FT_Int32 b )
{
FT_Int32 result;
#if defined( __GNUC__ )
__asm__ __volatile__ (
"imul %%edx\n"
@ -132,27 +182,8 @@ FT_BEGIN_HEADER
: "=a"(result), "=d"(b)
: "a"(a), "d"(b)
: "%ecx", "cc" );
return result;
}
#endif /* i386 */
#endif /* __GNUC__ */
#ifdef _MSC_VER /* Visual C++ */
#ifdef _M_IX86
#define FT_MULFIX_ASSEMBLER FT_MulFix_i386
/* documentation is in freetype.h */
static __inline FT_Int32
FT_MulFix_i386( FT_Int32 a,
FT_Int32 b )
{
FT_Int32 result;
#elif defined( _MSC_VER )
__asm
{
@ -169,81 +200,21 @@ FT_BEGIN_HEADER
add eax, edx
mov result, eax
}
#endif
return result;
}
#endif /* _M_IX86 */
#endif /* __i386__ || _M_IX86 */
#endif /* _MSC_VER */
#if defined( __GNUC__ ) && defined( __x86_64__ )
#define FT_MULFIX_ASSEMBLER FT_MulFix_x86_64
static __inline__ FT_Int32
FT_MulFix_x86_64( FT_Int32 a,
FT_Int32 b )
{
/* Temporarily disable the warning that C90 doesn't support */
/* `long long'. */
#if __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 6 )
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wlong-long"
#endif
#if 1
/* Technically not an assembly fragment, but GCC does a really good */
/* job at inlining it and generating good machine code for it. */
long long ret, tmp;
ret = (long long)a * b;
tmp = ret >> 63;
ret += 0x8000 + tmp;
return (FT_Int32)( ret >> 16 );
#else
/* For some reason, GCC 4.6 on Ubuntu 12.04 generates invalid machine */
/* code from the lines below. The main issue is that `wide_a' is not */
/* properly initialized by sign-extending `a'. Instead, the generated */
/* machine code assumes that the register that contains `a' on input */
/* can be used directly as a 64-bit value, which is wrong most of the */
/* time. */
long long wide_a = (long long)a;
long long wide_b = (long long)b;
long long result;
__asm__ __volatile__ (
"imul %2, %1\n"
"mov %1, %0\n"
"sar $63, %0\n"
"lea 0x8000(%1, %0), %0\n"
"sar $16, %0\n"
: "=&r"(result), "=&r"(wide_a)
: "r"(wide_b)
: "cc" );
return (FT_Int32)result;
#endif
#if __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 6 )
#pragma GCC diagnostic pop
#endif
}
#endif /* __GNUC__ && __x86_64__ */
#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */
#ifdef FT_CONFIG_OPTION_INLINE_MULFIX
#ifdef FT_MULFIX_ASSEMBLER
#define FT_MulFix( a, b ) FT_MULFIX_ASSEMBLER( (FT_Int32)(a), (FT_Int32)(b) )
#endif
#endif
#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */
#endif /* FT_CONFIG_OPTION_INLINE_MULFIX */
/**************************************************************************
@ -278,40 +249,6 @@ FT_BEGIN_HEADER
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
* idea is that both `a' and `b' are scaled by factors of 10 so that the
@ -455,6 +392,10 @@ FT_BEGIN_HEADER
#define FT_MSB( x ) FT_MSB_i386( x )
#elif defined( __CC_ARM )
#define FT_MSB( x ) ( 31 - __clz( x ) )
#elif defined( __SunOS_5_11 )
#include <string.h>
@ -526,55 +467,6 @@ FT_BEGIN_HEADER
#define ROUND_F26DOT6( x ) ( ( (x) + 32 - ( x < 0 ) ) & -64 )
/*
* The following macros have two purposes.
*
* - Tag places where overflow is expected and harmless.
*
* - Avoid run-time sanitizer errors.
*
* Use with care!
*/
#define ADD_INT( a, b ) \
(FT_Int)( (FT_UInt)(a) + (FT_UInt)(b) )
#define SUB_INT( a, b ) \
(FT_Int)( (FT_UInt)(a) - (FT_UInt)(b) )
#define MUL_INT( a, b ) \
(FT_Int)( (FT_UInt)(a) * (FT_UInt)(b) )
#define NEG_INT( a ) \
(FT_Int)( (FT_UInt)0 - (FT_UInt)(a) )
#define ADD_LONG( a, b ) \
(FT_Long)( (FT_ULong)(a) + (FT_ULong)(b) )
#define SUB_LONG( a, b ) \
(FT_Long)( (FT_ULong)(a) - (FT_ULong)(b) )
#define MUL_LONG( a, b ) \
(FT_Long)( (FT_ULong)(a) * (FT_ULong)(b) )
#define NEG_LONG( a ) \
(FT_Long)( (FT_ULong)0 - (FT_ULong)(a) )
#define ADD_INT32( a, b ) \
(FT_Int32)( (FT_UInt32)(a) + (FT_UInt32)(b) )
#define SUB_INT32( a, b ) \
(FT_Int32)( (FT_UInt32)(a) - (FT_UInt32)(b) )
#define MUL_INT32( a, b ) \
(FT_Int32)( (FT_UInt32)(a) * (FT_UInt32)(b) )
#define NEG_INT32( a ) \
(FT_Int32)( (FT_UInt32)0 - (FT_UInt32)(a) )
#ifdef FT_INT64
#define ADD_INT64( a, b ) \
(FT_Int64)( (FT_UInt64)(a) + (FT_UInt64)(b) )
#define SUB_INT64( a, b ) \
(FT_Int64)( (FT_UInt64)(a) - (FT_UInt64)(b) )
#define MUL_INT64( a, b ) \
(FT_Int64)( (FT_UInt64)(a) * (FT_UInt64)(b) )
#define NEG_INT64( a ) \
(FT_Int64)( (FT_UInt64)0 - (FT_UInt64)(a) )
#endif /* FT_INT64 */
FT_END_HEADER

View File

@ -4,7 +4,7 @@
*
* Debugging and logging component (specification).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
*
* The FreeType glyph loader (specification).
*
* Copyright (C) 2002-2024 by
* Copyright (C) 2002-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg
*
* This file is part of the FreeType project, and may only be used,

View File

@ -117,6 +117,18 @@ FT_BEGIN_HEADER
FT_Hash hash,
FT_Memory memory );
FT_Error
ft_hash_str_insert_no_overwrite( const char* key,
size_t data,
FT_Hash hash,
FT_Memory memory );
FT_Error
ft_hash_num_insert_no_overwrite( FT_Int num,
size_t data,
FT_Hash hash,
FT_Memory memory );
size_t*
ft_hash_str_lookup( const char* key,
FT_Hash hash );
@ -125,6 +137,17 @@ FT_BEGIN_HEADER
ft_hash_num_lookup( FT_Int num,
FT_Hash hash );
FT_Bool
ft_hash_num_iterator( FT_UInt *idx,
FT_Int *key,
size_t *value,
FT_Hash hash );
FT_Bool
ft_hash_str_iterator( FT_UInt *idx,
const char* *key,
size_t *value,
FT_Hash hash );
FT_END_HEADER

View File

@ -4,7 +4,7 @@
*
* The FreeType memory management macros (specification).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg
*
* This file is part of the FreeType project, and may only be used,

View File

@ -5,7 +5,7 @@
* OpenType Variations type definitions for internal use
* with the multi-masters service (specification).
*
* Copyright (C) 2022-2024 by
* Copyright (C) 2022-2025 by
* David Turner, Robert Wilhelm, Werner Lemberg, George Williams, and
* Dominik Röttsches.
*

View File

@ -4,7 +4,7 @@
*
* The FreeType private base classes (specification).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@ -275,6 +275,28 @@ FT_BEGIN_HEADER
FT_GlyphSlot slot,
FT_Render_Mode mode );
/**************************************************************************
*
* @Function:
* find_unicode_charmap
*
* @Description:
* This function finds a Unicode charmap, if there is one. And if there
* is more than one, it tries to favour the more extensive one, i.e., one
* that supports UCS-4 against those which are limited to the BMP (UCS-2
* encoding.)
*
* If a unicode charmap is found, `face->charmap` is set to it.
*
* This function is called from `open_face`, from `FT_Select_Charmap(...,
* FT_ENCODING_UNICODE)`, and also from `afadjust.c` in the 'autofit'
* module.
*/
FT_BASE( FT_Error )
find_unicode_charmap( FT_Face face );
#ifdef FT_CONFIG_OPTION_SUBPIXEL_RENDERING
typedef void (*FT_Bitmap_LcdFilterFunc)( FT_Bitmap* bitmap,
@ -498,9 +520,9 @@ FT_BEGIN_HEADER
*/
typedef struct FT_ModuleRec_
{
FT_Module_Class* clazz;
FT_Library library;
FT_Memory memory;
const FT_Module_Class* clazz;
FT_Library library;
FT_Memory memory;
} FT_ModuleRec;

View File

@ -4,7 +4,7 @@
*
* Get and set properties of PostScript drivers (specification).
*
* Copyright (C) 2017-2024 by
* Copyright (C) 2017-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
*
* Embedded resource forks accessor (specification).
*
* Copyright (C) 2004-2024 by
* Copyright (C) 2004-2025 by
* Masatake YAMATO and Redhat K.K.
*
* This file is part of the FreeType project, and may only be used,

View File

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

View File

@ -4,7 +4,7 @@
*
* Stream handling (specification).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
*
* Tracing handling (specification only).
*
* Copyright (C) 2002-2024 by
* Copyright (C) 2002-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@ -19,7 +19,7 @@
/* definitions of trace levels for FreeType 2 */
/* the maximum string length (if the argument to `FT_TRACE_DEF` */
/* gets used as a string) plus one charachter for ':' plus */
/* gets used as a string) plus one character for ':' plus */
/* another one for the trace level */
#define FT_MAX_TRACE_LEVEL_LENGTH (9 + 1 + 1)
@ -159,6 +159,7 @@ FT_TRACE_DEF( gxvprop )
FT_TRACE_DEF( gxvtrak )
/* autofit components */
FT_TRACE_DEF( afadjust )
FT_TRACE_DEF( afcjk )
FT_TRACE_DEF( afglobal )
FT_TRACE_DEF( afhints )

View File

@ -4,7 +4,7 @@
*
* FreeType validation support (specification).
*
* Copyright (C) 2004-2024 by
* Copyright (C) 2004-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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
* (specification).
*
* Copyright (C) 1996-2024 by
* Copyright (C) 1996-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -6,7 +6,7 @@
* recorders (specification only). These are used to support native
* T1/T2 hints in the 'type1', 'cid', and 'cff' font drivers.
*
* Copyright (C) 2001-2024 by
* Copyright (C) 2001-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -1,79 +0,0 @@
version = 1
[[annotations]]
path = ["svbdf.h", "svfntfmt.h", "svgldict.h", "svpfr.h", "svpostnm.h", "svpscmap.h",
"svpsinfo.h", "svsfnt.h", "svwinfnt.h"]
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2003-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "svttcmap.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2003-2023 by Masatake YAMATO, Redhat K.K., David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "svmm.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2003-2023 by David Turner, Robert Wilhelm, Werner Lemberg, and Dominik Röttsches."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "svgxval.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2004-2023 by Masatake YAMATO, Redhat K.K., David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "svotval.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2004-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = ["svkern.h", "svtteng.h"]
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2006-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "svcid.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2007-2023 by Derek Clegg and Michael Toftdal."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "svttglyf.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2007-2023 by David Turner."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "svprop.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2012-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "svmetric.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2016-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"
[[annotations]]
path = "svcfftl.h"
comment = "Copyright continuation line ignored by reuse for lack of word Copyright at start."
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2017-2023 by David Turner, Robert Wilhelm, and Werner Lemberg."
SPDX-License-Identifier = "FTL OR GPL-2.0-only"

View File

@ -4,7 +4,7 @@
*
* The FreeType BDF services (specification).
*
* Copyright (C) 2003-2024 by
* Copyright (C) 2003-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 2017-2024 by
* Copyright (C) 2017-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 2007-2024 by
* Copyright (C) 2007-2025 by
* Derek Clegg and Michael Toftdal.
*
* 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).
*
* Copyright (C) 2003-2024 by
* Copyright (C) 2003-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 2003-2024 by
* Copyright (C) 2003-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 2004-2024 by
* Copyright (C) 2004-2025 by
* Masatake YAMATO, Red Hat K.K.,
* David Turner, Robert Wilhelm, and Werner Lemberg.
*

View File

@ -4,7 +4,7 @@
*
* The FreeType Kerning service (specification).
*
* Copyright (C) 2006-2024 by
* Copyright (C) 2006-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 2016-2024 by
* Copyright (C) 2016-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@ -77,7 +77,7 @@ FT_BEGIN_HEADER
typedef void
(*FT_Metrics_Adjust_Func)( FT_Face face );
typedef FT_Error
typedef void
(*FT_Size_Reset_Func)( FT_Size size );

View File

@ -4,7 +4,7 @@
*
* The FreeType Multiple Masters and GX var services (specification).
*
* Copyright (C) 2003-2024 by
* Copyright (C) 2003-2025 by
* David Turner, Robert Wilhelm, Werner Lemberg, and Dominik Röttsches.
*
* This file is part of the FreeType project, and may only be used,

View File

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

View File

@ -4,7 +4,7 @@
*
* Internal PFR service functions (specification).
*
* Copyright (C) 2003-2024 by
* Copyright (C) 2003-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 2003-2024 by
* Copyright (C) 2003-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
*
* The FreeType property service (specification).
*
* Copyright (C) 2012-2024 by
* Copyright (C) 2012-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 2003-2024 by
* Copyright (C) 2003-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 2003-2024 by
* Copyright (C) 2003-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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).
*
* Copyright (C) 2003-2024 by
* Copyright (C) 2003-2025 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* 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.
*
* Copyright (C) 2003-2024 by
* Copyright (C) 2003-2025 by
* Masatake YAMATO, Redhat K.K.,
* David Turner, Robert Wilhelm, and Werner Lemberg.
*

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