mirror of https://github.com/qt/qtbase.git
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 commit47975226ac
) (cherry picked from commit9cc32c2490
) (cherry picked from commit05287da820
) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
0b96e51148
commit
076a68e945
|
@ -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
|
||||
|
|
|
@ -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
|
@ -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,
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 ---
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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"
|
|
@ -1,7 +0,0 @@
|
|||
version = 1
|
||||
|
||||
[[annotations]]
|
||||
path = "*"
|
||||
precedence = "closest"
|
||||
SPDX-FileCopyrightText = "Copyright (c) 2019 nyorain"
|
||||
SPDX-License-Identifier = "BSL-1.0"
|
|
@ -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"
|
|
@ -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"
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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_ */
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 )
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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.
|
||||
*
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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.
|
||||
*
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 )
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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"
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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.
|
||||
*
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 );
|
||||
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue