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
|
# From freetype CMakeLists.txt
|
||||||
|
|
||||||
set(BASE_SRCS
|
set(BASE_SRCS
|
||||||
|
src/autofit/afadjust.c
|
||||||
|
src/autofit/afgsub.c
|
||||||
src/autofit/autofit.c
|
src/autofit/autofit.c
|
||||||
src/base/ftbase.c
|
src/base/ftbase.c
|
||||||
src/base/ftbbox.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.
|
FreeType is a freely available software library to render fonts.
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ Please read the `docs/CHANGES` file, it contains IMPORTANT
|
||||||
INFORMATION.
|
INFORMATION.
|
||||||
|
|
||||||
Read the files `docs/INSTALL*` for installation instructions; see the
|
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,
|
For using FreeType's git repository instead of a distribution bundle,
|
||||||
please read file `README.git`. Note that you have to actually clone
|
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.
|
and download one of the following files.
|
||||||
|
|
||||||
freetype-doc-2.13.3.tar.xz
|
freetype-doc-2.14.0.tar.xz
|
||||||
freetype-doc-2.13.3.tar.gz
|
freetype-doc-2.14.0.tar.gz
|
||||||
ftdoc2133.zip
|
ftdoc2140.zip
|
||||||
|
|
||||||
To view the documentation online, go to
|
To view the documentation online, go to
|
||||||
|
|
||||||
https://www.freetype.org/freetype2/docs/
|
https://freetype.org/freetype2/docs/
|
||||||
|
|
||||||
|
|
||||||
Mailing Lists
|
Mailing Lists
|
||||||
|
@ -54,7 +54,7 @@ e-mail lists.
|
||||||
|
|
||||||
The lists are moderated; see
|
The lists are moderated; see
|
||||||
|
|
||||||
https://www.freetype.org/contact.html
|
https://freetype.org/contact.html
|
||||||
|
|
||||||
how to subscribe.
|
how to subscribe.
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ FreeType!
|
||||||
|
|
||||||
Details on the process can be found here:
|
Details on the process can be found here:
|
||||||
|
|
||||||
https://www.freetype.org/developer.html#patches
|
https://freetype.org/developer.html#patches
|
||||||
|
|
||||||
|
|
||||||
Enjoy!
|
Enjoy!
|
||||||
|
@ -94,7 +94,7 @@ Enjoy!
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (C) 2006-2024 by
|
Copyright (C) 2006-2025 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Unix-specific FreeType low-level system interface (body).
|
* 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.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Debugging and logging component for Win32 (body).
|
* Debugging and logging component for Win32 (body).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -64,7 +64,7 @@
|
||||||
* with the actual log message if set to true.
|
* with the actual log message if set to true.
|
||||||
*
|
*
|
||||||
* 5. The flag `ft_timestamp_flag` prints time along with the actual log
|
* 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
|
* 6. `ft_have_newline_char` is used to differentiate between a log
|
||||||
* message with and without a trailing newline character.
|
* 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)
|
CHANGES BETWEEN 2.13.2 and 2.13.3 (2024-Aug-11)
|
||||||
|
|
||||||
I. IMPORTANT CHANGES
|
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.
|
- 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
|
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
|
corresponding `FT_COLR_Paint` object, which contains details
|
||||||
on how to draw the respective 'COLR' v1 `Paint` table.
|
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
|
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.
|
Set text foreground color for palette index 0xFFFF.
|
||||||
|
|
||||||
FT_Get_Color_Glyph_Layer
|
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).
|
object).
|
||||||
|
|
||||||
FT_Bitmap_Blend
|
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,
|
- Subpixel hinting support has been contributed by Infinality,
|
||||||
based on Greg Hitchcock's whitepaper at
|
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
|
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
|
We provide patches for most of those rogue clients. See the
|
||||||
following page for more information:
|
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
|
Note that, as a convenience to our Unix desktop users, version
|
||||||
2.2 is *binary* compatible with FreeType 2.1.7, which means that
|
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
|
quality since many nasty defaults have been suppressed. Please
|
||||||
visit the web page:
|
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.
|
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
|
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.
|
- 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
|
- The FreeType 2 redesign has begun. More information can be
|
||||||
found at this URL:
|
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
|
The following internal changes have been performed within the
|
||||||
sources of this release:
|
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:
|
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
|
- Many, many comments have been added to the public source file in
|
||||||
order to automatically generate the API Reference through the
|
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
|
The latter has been updated to support the grouping of sections
|
||||||
in chapters and better index sort. See:
|
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
|
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.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -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.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -297,7 +297,7 @@ to access them.
|
||||||
|
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (C) 2002-2024 by
|
Copyright (C) 2002-2025 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -49,7 +49,7 @@ Introduction
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Portions of this software are copyright © <year> The FreeType
|
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
|
Please replace <year> with the value from the FreeType version you
|
||||||
|
@ -163,7 +163,7 @@ Legal Terms
|
||||||
|
|
||||||
Our home page can be found at
|
Our home page can be found at
|
||||||
|
|
||||||
https://www.freetype.org
|
https://freetype.org
|
||||||
|
|
||||||
|
|
||||||
--- end of FTL.TXT ---
|
--- 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.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -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).
|
* ANSI-specific configuration file (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Build macros of the FreeType 2 library.
|
* Build macros of the FreeType 2 library.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* User-selectable configuration macros (specification only).
|
* User-selectable configuration macros (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -158,12 +158,12 @@ FT_BEGIN_HEADER
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
*
|
*
|
||||||
* If this macro is defined, try to use an inlined assembler version of the
|
* If this macro is defined, try to use an inlined 64-bit or assembler
|
||||||
* @FT_MulFix function, which is a 'hotspot' when loading and hinting
|
* version of the @FT_MulFix function, which is a 'hotspot' when loading
|
||||||
* glyphs, and which should be executed as fast as possible.
|
* 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
|
* If your compiler is not C99-compliant or CPU assembly is not supported,
|
||||||
* the standard and portable implementation found in `ftcalc.c`.
|
* you can disable this option.
|
||||||
*/
|
*/
|
||||||
#define FT_CONFIG_OPTION_INLINE_MULFIX
|
#define FT_CONFIG_OPTION_INLINE_MULFIX
|
||||||
|
|
||||||
|
@ -293,6 +293,31 @@ FT_BEGIN_HEADER
|
||||||
/* #define FT_CONFIG_OPTION_USE_HARFBUZZ */
|
/* #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.
|
* Brotli support.
|
||||||
|
@ -679,7 +704,7 @@ FT_BEGIN_HEADER
|
||||||
* defined.
|
* defined.
|
||||||
*
|
*
|
||||||
* [1]
|
* [1]
|
||||||
* https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx
|
* https://learn.microsoft.com/typography/cleartype/truetypecleartype
|
||||||
*/
|
*/
|
||||||
#define TT_CONFIG_OPTION_SUBPIXEL_HINTING
|
#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
|
* flags array which can be used to disambiguate, but old fonts will not
|
||||||
* have them.
|
* 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
|
* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html
|
||||||
*/
|
*/
|
||||||
#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED
|
#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED
|
||||||
|
@ -760,10 +785,10 @@ FT_BEGIN_HEADER
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
*
|
*
|
||||||
* Option `TT_CONFIG_OPTION_GPOS_KERNING` enables a basic GPOS kerning
|
* Option `TT_CONFIG_OPTION_GPOS_KERNING` enables a basic GPOS kerning
|
||||||
* implementation (for TrueType fonts only). With this defined, FreeType
|
* implementation (for TrueType and OpenType fonts only). With this
|
||||||
* is able to get kerning pair data from the GPOS 'kern' feature as well as
|
* defined, FreeType is able to get kerning pair data from the GPOS 'kern'
|
||||||
* legacy 'kern' tables; without this defined, FreeType will only be able
|
* feature as well as legacy 'kern' tables; without this defined, FreeType
|
||||||
* to use legacy 'kern' tables.
|
* will only be able to use legacy 'kern' tables.
|
||||||
*
|
*
|
||||||
* Note that FreeType does not support more advanced GPOS layout features;
|
* Note that FreeType does not support more advanced GPOS layout features;
|
||||||
* even the 'kern' feature implemented here doesn't handle more
|
* even the 'kern' feature implemented here doesn't handle more
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
* ANSI-specific library and header configuration file (specification
|
* ANSI-specific library and header configuration file (specification
|
||||||
* only).
|
* only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2002-2024 by
|
* Copyright (C) 2002-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType integer types definitions.
|
* FreeType integer types definitions.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -17,6 +17,8 @@
|
||||||
#ifndef FREETYPE_CONFIG_INTEGER_TYPES_H_
|
#ifndef FREETYPE_CONFIG_INTEGER_TYPES_H_
|
||||||
#define 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` */
|
/* 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 */
|
/* 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 */
|
/* `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) */
|
#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */
|
||||||
|
|
||||||
#ifdef FT_INT64
|
#ifdef FT_INT64
|
||||||
|
|
||||||
typedef FT_INT64 FT_Int64;
|
typedef FT_INT64 FT_Int64;
|
||||||
typedef FT_UINT64 FT_UInt64;
|
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_ */
|
#endif /* FREETYPE_CONFIG_INTEGER_TYPES_H_ */
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Mac/OS X support configuration header.
|
* Mac/OS X support configuration header.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Define a set of compiler macros used in public FreeType headers.
|
* Define a set of compiler macros used in public FreeType headers.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2020-2024 by
|
* Copyright (C) 2020-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -62,8 +62,8 @@ FT_BEGIN_HEADER
|
||||||
* because it is needed by `FT_EXPORT`.
|
* because it is needed by `FT_EXPORT`.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Visual C, mingw */
|
/* Visual C, MinGW, Cygwin */
|
||||||
#if defined( _WIN32 )
|
#if defined( _WIN32 ) || defined( __CYGWIN__ )
|
||||||
|
|
||||||
#if defined( FT2_BUILD_LIBRARY ) && defined( DLL_EXPORT )
|
#if defined( FT2_BUILD_LIBRARY ) && defined( DLL_EXPORT )
|
||||||
#define FT_PUBLIC_FUNCTION_ATTRIBUTE __declspec( dllexport )
|
#define FT_PUBLIC_FUNCTION_ATTRIBUTE __declspec( dllexport )
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType high-level API and common types (specification only).
|
* FreeType high-level API and common types (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -811,7 +811,7 @@ FT_BEGIN_HEADER
|
||||||
* FT_ENCODING_MS_SYMBOL ::
|
* FT_ENCODING_MS_SYMBOL ::
|
||||||
* Microsoft Symbol encoding, used to encode mathematical symbols and
|
* Microsoft Symbol encoding, used to encode mathematical symbols and
|
||||||
* wingdings. For more information, see
|
* 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/symbol.htm', and
|
||||||
* 'http://www.kostis.net/charsets/wingding.htm'.
|
* '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
|
* 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.
|
* 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
|
* [Since 2.6.1] Bits 16-30 are relevant to TrueType GX and OpenType
|
||||||
* fonts only, holding the named instance index for the current face
|
* Font Variations only, holding the named instance index for the
|
||||||
* index (starting with value~1; value~0 indicates font access without
|
* current face index (starting with value~1; value~0 indicates font
|
||||||
* a named instance). For non-variation fonts, bits 16-30 are ignored.
|
* access without a named instance). For non-variation fonts, bits
|
||||||
* If we have the third named instance of face~4, say, `face_index` is
|
* 16-30 are ignored. If we have the third named instance of face~4,
|
||||||
* set to 0x00030004.
|
* say, `face_index` is set to 0x00030004.
|
||||||
*
|
*
|
||||||
* Bit 31 is always zero (that is, `face_index` is always a positive
|
* Bit 31 is always zero (that is, `face_index` is always a positive
|
||||||
* value).
|
* value).
|
||||||
|
@ -1092,10 +1092,10 @@ FT_BEGIN_HEADER
|
||||||
* the face; see @FT_STYLE_FLAG_XXX for the details.
|
* the face; see @FT_STYLE_FLAG_XXX for the details.
|
||||||
*
|
*
|
||||||
* [Since 2.6.1] Bits 16-30 hold the number of named instances
|
* [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
|
* available for the current face if we have a TrueType GX or OpenType
|
||||||
* (sub)font. Bit 31 is always zero (that is, `style_flags` is always
|
* Font Variation. Bit 31 is always zero (that is, `style_flags` is
|
||||||
* a positive value). Note that a variation font has always at least
|
* always a positive value). Note that a variation font has always at
|
||||||
* one named instance, namely the default instance.
|
* least one named instance, namely the default instance.
|
||||||
*
|
*
|
||||||
* num_glyphs ::
|
* num_glyphs ::
|
||||||
* The number of glyphs in the face. If the face is scalable and has
|
* 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
|
* Note that the bounding box might be off by (at least) one pixel for
|
||||||
* hinted fonts. See @FT_Size_Metrics for further discussion.
|
* 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.
|
* and should only be used in relation to the default instance.
|
||||||
*
|
*
|
||||||
* units_per_EM ::
|
* units_per_EM ::
|
||||||
|
@ -1218,7 +1218,7 @@ FT_BEGIN_HEADER
|
||||||
* Fields may be changed after a call to @FT_Attach_File or
|
* Fields may be changed after a call to @FT_Attach_File or
|
||||||
* @FT_Attach_Stream.
|
* @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
|
* change after a call to @FT_Set_Var_Design_Coordinates (and friends) if
|
||||||
* the font contains an 'MVAR' table: `ascender`, `descender`, `height`,
|
* the font contains an 'MVAR' table: `ascender`, `descender`, `height`,
|
||||||
* `underline_position`, and `underline_thickness`.
|
* `underline_position`, and `underline_thickness`.
|
||||||
|
@ -1336,7 +1336,7 @@ FT_BEGIN_HEADER
|
||||||
* FT_FACE_FLAG_MULTIPLE_MASTERS ::
|
* FT_FACE_FLAG_MULTIPLE_MASTERS ::
|
||||||
* The face contains multiple masters and is capable of interpolating
|
* The face contains multiple masters and is capable of interpolating
|
||||||
* between them. Supported formats are Adobe MM, TrueType GX, and
|
* between them. Supported formats are Adobe MM, TrueType GX, and
|
||||||
* OpenType variation fonts.
|
* OpenType Font Variations.
|
||||||
*
|
*
|
||||||
* See section @multiple_masters for API details.
|
* See section @multiple_masters for API details.
|
||||||
*
|
*
|
||||||
|
@ -1609,7 +1609,7 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @description:
|
* @description:
|
||||||
* A macro that returns true whenever a face object is a named instance
|
* 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
|
* [Since 2.9] Changing the design coordinates with
|
||||||
* @FT_Set_Var_Design_Coordinates or @FT_Set_Var_Blend_Coordinates does
|
* @FT_Set_Var_Design_Coordinates or @FT_Set_Var_Blend_Coordinates does
|
||||||
|
@ -2147,7 +2147,7 @@ FT_BEGIN_HEADER
|
||||||
* freed.
|
* freed.
|
||||||
*
|
*
|
||||||
* [Since 2.10.1] If @FT_LOAD_NO_SCALE is set, outline coordinates of
|
* [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)
|
* handled as 26.6 fractional font units but returned as (rounded)
|
||||||
* integers, as expected. To get unrounded font units, don't use
|
* 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
|
* @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
|
* the face in the font file (starting with value~0). Set it to~0 if
|
||||||
* there is only one face in the font file.
|
* there is only one face in the font file.
|
||||||
*
|
*
|
||||||
* [Since 2.6.1] Bits 16-30 are relevant to GX and OpenType variation
|
* [Since 2.6.1] Bits 16-30 are relevant to TrueType GX and OpenType
|
||||||
* fonts only, specifying the named instance index for the current face
|
* Font Variations only, specifying the named instance index for the
|
||||||
* index (starting with value~1; value~0 makes FreeType ignore named
|
* current face index (starting with value~1; value~0 makes FreeType
|
||||||
* instances). For non-variation fonts, bits 16-30 are ignored.
|
* ignore named instances). For non-variation fonts, bits 16-30 are
|
||||||
* Assuming that you want to access the third named instance in face~4,
|
* ignored. Assuming that you want to access the third named instance
|
||||||
* `face_index` should be set to 0x00030004. If you want to access
|
* in face~4, `face_index` should be set to 0x00030004. If you want
|
||||||
* face~4 without variation handling, simply set `face_index` to
|
* to access face~4 without variation handling, simply set
|
||||||
* value~4.
|
* `face_index` to value~4.
|
||||||
*
|
*
|
||||||
* `FT_Open_Face` and its siblings can be used to quickly check whether
|
* `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.
|
* 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
|
* 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.
|
* 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
|
* For TrueType GX and OpenType Font Variations, a bitmap strike makes
|
||||||
* if the default instance is active (that is, no glyph variation takes
|
* sense only if the default instance is active (that is, no glyph
|
||||||
* place); otherwise, FreeType simply ignores bitmap strikes. The same
|
* variation takes place); otherwise, FreeType simply ignores bitmap
|
||||||
* is true for all named instances that are different from the default
|
* strikes. The same is true for all named instances that are different
|
||||||
* instance.
|
* from the default instance.
|
||||||
*
|
*
|
||||||
* Don't use this function if you are using the FreeType cache API.
|
* 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.
|
* 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
|
* The font designer chooses the final size of each glyph relative to
|
||||||
* this size. For more information refer 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
|
* Contrary to @FT_Set_Char_Size, this function doesn't have special code
|
||||||
* to normalize zero-valued widths, heights, or resolutions, which are
|
* 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,
|
* blending of the color glyph layers associated with the glyph index,
|
||||||
* using the same bitmap format as embedded color bitmap images. This
|
* using the same bitmap format as embedded color bitmap images. This
|
||||||
* is mainly for convenience and works only for glyphs in 'COLR' v0
|
* is mainly for convenience and works only for glyphs in 'COLR' v0
|
||||||
* tables (or glyphs in 'COLR' v1 tables that exclusively use v0
|
* tables. **There is no rendering support for 'COLR' v1** (with the
|
||||||
* features). For full control of color layers use
|
* 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_Get_Color_Glyph_Layer and FreeType's color functions like
|
||||||
* @FT_Palette_Select instead of setting @FT_LOAD_COLOR for rendering
|
* @FT_Palette_Select instead of setting @FT_LOAD_COLOR for rendering
|
||||||
* so that the client application can handle blending by itself.
|
* 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
|
* This process can cost performance. There is an approximation that
|
||||||
* does not need to know about the background color; see
|
* does not need to know about the background color; see
|
||||||
* https://bel.fi/alankila/lcd/ and
|
* https://web.archive.org/web/20211019204945/https://bel.fi/alankila/lcd/
|
||||||
* https://bel.fi/alankila/lcd/alpcor.html for details.
|
* 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
|
* **ATTENTION**: Linear blending is even more important when dealing
|
||||||
* with subpixel-rendered glyphs to prevent color-fringing! A
|
* 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
|
* out of the scope of this API function -- they can be implemented
|
||||||
* through format-specific interfaces.
|
* through format-specific interfaces.
|
||||||
*
|
*
|
||||||
* Note that, for TrueType fonts only, this can extract data from both
|
* Note that, for TrueType and OpenType fonts only, this can extract data
|
||||||
* the 'kern' table and the basic, pair-wise kerning feature from the
|
* from both the 'kern' table and the basic, pair-wise kerning feature
|
||||||
* GPOS table (with `TT_CONFIG_OPTION_GPOS_KERNING` enabled), though
|
* from the GPOS table (with `TT_CONFIG_OPTION_GPOS_KERNING` enabled),
|
||||||
* FreeType does not support the more advanced GPOS layout features; use
|
* though FreeType does not support the more advanced GPOS layout
|
||||||
* a library like HarfBuzz for those instead. If a font has both a
|
* features; use a library like HarfBuzz for those instead. If a font
|
||||||
* 'kern' table and kern features of a GPOS table, the 'kern' table will
|
* has both a 'kern' table and kern features of a GPOS table, the 'kern'
|
||||||
* be used.
|
* table will be used.
|
||||||
*
|
*
|
||||||
* Also note for right-to-left scripts, the functionality may differ for
|
* Also note for right-to-left scripts, the functionality may differ for
|
||||||
* fonts with GPOS tables vs. 'kern' tables. For GPOS, right-to-left
|
* 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
|
* table description in the OpenType specification for the meaning of the
|
||||||
* various flags (which get synthesized for non-OpenType subglyphs).
|
* 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:
|
* @values:
|
||||||
* FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS ::
|
* FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS ::
|
||||||
|
@ -4593,7 +4597,7 @@ FT_BEGIN_HEADER
|
||||||
* interpreted depending on the flags returned in `*p_flags`. See the
|
* interpreted depending on the flags returned in `*p_flags`. See the
|
||||||
* OpenType specification for details.
|
* 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 )
|
FT_EXPORT( FT_Error )
|
||||||
|
@ -4619,7 +4623,7 @@ FT_BEGIN_HEADER
|
||||||
* associated with a font.
|
* associated with a font.
|
||||||
*
|
*
|
||||||
* See
|
* 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.
|
* for more details.
|
||||||
*
|
*
|
||||||
* @values:
|
* @values:
|
||||||
|
@ -5173,8 +5177,8 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#define FREETYPE_MAJOR 2
|
#define FREETYPE_MAJOR 2
|
||||||
#define FREETYPE_MINOR 13
|
#define FREETYPE_MINOR 14
|
||||||
#define FREETYPE_PATCH 3
|
#define FREETYPE_PATCH 0
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Quick computation of advance widths (specification only).
|
* Quick computation of advance widths (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008-2024 by
|
* Copyright (C) 2008-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType exact bbox computation (specification).
|
* FreeType exact bbox computation (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType API for accessing BDF-specific strings (specification).
|
* 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.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType utility functions for bitmaps (specification).
|
* FreeType utility functions for bitmaps (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2004-2024 by
|
* Copyright (C) 2004-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Bzip2-compressed stream support.
|
* Bzip2-compressed stream support.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2010-2024 by
|
* Copyright (C) 2010-2025 by
|
||||||
* Joel Klinghed.
|
* Joel Klinghed.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType Cache subsystem (specification).
|
* FreeType Cache subsystem (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType API for accessing CID font information (specification).
|
* FreeType API for accessing CID font information (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2007-2024 by
|
* Copyright (C) 2007-2025 by
|
||||||
* Dereg Clegg and Michael Toftdal.
|
* Dereg Clegg and Michael Toftdal.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType's glyph color management (specification).
|
* FreeType's glyph color management (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2018-2024 by
|
* Copyright (C) 2018-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -317,6 +317,15 @@ FT_BEGIN_HEADER
|
||||||
* @description:
|
* @description:
|
||||||
* The functions described here allow access of colored glyph layer data
|
* The functions described here allow access of colored glyph layer data
|
||||||
* in OpenType's 'COLR' tables.
|
* 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
|
* iteratively retrieve the colored glyph layers associated with the
|
||||||
* current glyph slot.
|
* 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
|
* The glyph layer data for a given glyph index, if present, provides an
|
||||||
* alternative, multi-color glyph representation: Instead of rendering
|
* alternative, multi-color glyph representation: Instead of rendering
|
||||||
|
@ -1518,7 +1527,7 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @return:
|
* @return:
|
||||||
* Value~1 if a clip box is found. If no clip box is found or an error
|
* 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:
|
* @note:
|
||||||
* To retrieve the clip box in font units, reset scale to units-per-em
|
* To retrieve the clip box in font units, reset scale to units-per-em
|
||||||
|
@ -1646,7 +1655,7 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @return:
|
* @return:
|
||||||
* Value~1 if everything is OK. Value~0 if no details can be found for
|
* 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:
|
* @since:
|
||||||
* 2.13
|
* 2.13
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType API for controlling driver modules (specification only).
|
* 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.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -282,7 +282,7 @@ FT_BEGIN_HEADER
|
||||||
* minimize hinting techniques that were problematic with the extra
|
* minimize hinting techniques that were problematic with the extra
|
||||||
* resolution of ClearType; see
|
* resolution of ClearType; see
|
||||||
* http://rastertragedy.com/RTRCh4.htm#Sec1 and
|
* 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.
|
* This technique is not to be confused with ClearType compatible widths.
|
||||||
* ClearType backward compatibility has no direct impact on changing
|
* ClearType backward compatibility has no direct impact on changing
|
||||||
* advance widths, but there might be an indirect impact on disabling
|
* 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
|
* Details on subpixel hinting and some of the necessary tweaks can be
|
||||||
* found in Greg Hitchcock's whitepaper at
|
* 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,
|
* Note that FreeType currently doesn't really 'subpixel hint' (6x1, 6x2,
|
||||||
* or 6x5 supersampling) like discussed in the paper. Depending on the
|
* or 6x5 supersampling) like discussed in the paper. Depending on the
|
||||||
* chosen interpreter, it simply ignores instructions on vertical stems
|
* chosen interpreter, it simply ignores instructions on vertical stems
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType error codes (specification).
|
* FreeType error codes (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2002-2024 by
|
* Copyright (C) 2002-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType error code handling (specification).
|
* FreeType error code handling (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Support functions for font formats.
|
* Support functions for font formats.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2002-2024 by
|
* Copyright (C) 2002-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Access of TrueType's 'gasp' table (specification).
|
* Access of TrueType's 'gasp' table (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2007-2024 by
|
* Copyright (C) 2007-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType convenience functions to handle glyphs (specification).
|
* FreeType convenience functions to handle glyphs (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType API for validating TrueTypeGX/AAT tables (specification).
|
* FreeType API for validating TrueTypeGX/AAT tables (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2004-2024 by
|
* Copyright (C) 2004-2025 by
|
||||||
* Masatake YAMATO, Redhat K.K,
|
* Masatake YAMATO, Redhat K.K,
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Gzip-compressed stream support.
|
* Gzip-compressed stream support.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2002-2024 by
|
* Copyright (C) 2002-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
* FreeType glyph image formats and default raster interface
|
* FreeType glyph image formats and default raster interface
|
||||||
* (specification).
|
* (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -267,6 +267,10 @@ FT_BEGIN_HEADER
|
||||||
* *logical* one. For example, if @FT_Pixel_Mode is set to
|
* *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
|
* `FT_PIXEL_MODE_LCD`, the logical width is a just a third of the
|
||||||
* physical one.
|
* 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_
|
typedef struct FT_Bitmap_
|
||||||
{
|
{
|
||||||
|
@ -439,7 +443,7 @@ FT_BEGIN_HEADER
|
||||||
* rasterizer; see the `tags` field in @FT_Outline.
|
* rasterizer; see the `tags` field in @FT_Outline.
|
||||||
*
|
*
|
||||||
* Please refer to the description of the 'SCANTYPE' instruction in the
|
* 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.
|
* how simple drop-outs, smart drop-outs, and stubs are defined.
|
||||||
*/
|
*/
|
||||||
#define FT_OUTLINE_NONE 0x0
|
#define FT_OUTLINE_NONE 0x0
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType incremental loading (specification).
|
* FreeType incremental loading (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2002-2024 by
|
* Copyright (C) 2002-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
* FreeType API for color filtering of subpixel bitmap glyphs
|
* FreeType API for color filtering of subpixel bitmap glyphs
|
||||||
* (specification).
|
* (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2006-2024 by
|
* Copyright (C) 2006-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Generic list support for FreeType (specification).
|
* Generic list support for FreeType (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Additional debugging APIs.
|
* Additional debugging APIs.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2020-2024 by
|
* Copyright (C) 2020-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* LZW-compressed stream support.
|
* LZW-compressed stream support.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2004-2024 by
|
* Copyright (C) 2004-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Additional Mac-specific API.
|
* Additional Mac-specific API.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg.
|
* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
*
|
*
|
||||||
* ftmm.h
|
* 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.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -37,24 +37,79 @@ FT_BEGIN_HEADER
|
||||||
* multiple_masters
|
* multiple_masters
|
||||||
*
|
*
|
||||||
* @title:
|
* @title:
|
||||||
* Multiple Masters
|
* OpenType Font Variations, TrueType GX, and Adobe MM Fonts
|
||||||
*
|
*
|
||||||
* @abstract:
|
* @abstract:
|
||||||
* How to manage Multiple Masters fonts.
|
* How to manage variable fonts with multiple design axes.
|
||||||
*
|
*
|
||||||
* @description:
|
* @description:
|
||||||
* The following types and functions are used to manage Multiple Master
|
* The following types and functions manage OpenType Font Variations,
|
||||||
* fonts, i.e., the selection of specific design instances by setting
|
* Adobe Multiple Master (MM) fonts, and Apple TrueType GX fonts. These
|
||||||
* design axis coordinates.
|
* 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
|
* For historical reasons there are two interfaces. The first, older one
|
||||||
* OpenType variation fonts. Some of the routines only work with Adobe
|
* can be used with Adobe MM fonts only, and the second, newer one is a
|
||||||
* MM fonts, others will work with all three types. They are similar
|
* unified interface that handles all three font formats. However, some
|
||||||
* enough that a consistent interface makes sense.
|
* 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
|
* For Adobe MM fonts, macro @FT_IS_SFNT returns false. For TrueType GX
|
||||||
* OpenType variation fonts, it returns true.
|
* 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
|
* T1_MAX_MM_XXX
|
||||||
*
|
*
|
||||||
* @description:
|
* @description:
|
||||||
* Multiple Masters limits as defined in their specifications.
|
* Adobe MM font limits as defined in their specifications.
|
||||||
*
|
*
|
||||||
* @values:
|
* @values:
|
||||||
* T1_MAX_MM_AXIS ::
|
* T1_MAX_MM_AXIS ::
|
||||||
* The maximum number of Multiple Masters axes.
|
* The maximum number of Adobe MM font axes.
|
||||||
*
|
*
|
||||||
* T1_MAX_MM_DESIGNS ::
|
* T1_MAX_MM_DESIGNS ::
|
||||||
* The maximum number of Multiple Masters designs.
|
* The maximum number of Adobe MM font designs.
|
||||||
*
|
*
|
||||||
* T1_MAX_MM_MAP_POINTS ::
|
* T1_MAX_MM_MAP_POINTS ::
|
||||||
* The maximum number of elements in a design map.
|
* The maximum number of elements in a design map.
|
||||||
|
@ -88,11 +143,10 @@ FT_BEGIN_HEADER
|
||||||
* FT_MM_Axis
|
* FT_MM_Axis
|
||||||
*
|
*
|
||||||
* @description:
|
* @description:
|
||||||
* A structure to model a given axis in design space for Multiple Masters
|
* A structure to model a given axis in design space for Adobe MM fonts.
|
||||||
* fonts.
|
|
||||||
*
|
*
|
||||||
* This structure can't be used for TrueType GX or OpenType variation
|
* This structure can't be used with TrueType GX or OpenType Font
|
||||||
* fonts.
|
* Variations.
|
||||||
*
|
*
|
||||||
* @fields:
|
* @fields:
|
||||||
* name ::
|
* name ::
|
||||||
|
@ -119,17 +173,17 @@ FT_BEGIN_HEADER
|
||||||
* FT_Multi_Master
|
* FT_Multi_Master
|
||||||
*
|
*
|
||||||
* @description:
|
* @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
|
* This structure can't be used with TrueType GX or OpenType Font
|
||||||
* fonts.
|
* Variations.
|
||||||
*
|
*
|
||||||
* @fields:
|
* @fields:
|
||||||
* num_axis ::
|
* num_axis ::
|
||||||
* Number of axes. Cannot exceed~4.
|
* Number of axes. Cannot exceed~4.
|
||||||
*
|
*
|
||||||
* num_designs ::
|
* 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
|
* Type~1 specification strangely allows for intermediate designs to be
|
||||||
* present. This number cannot exceed~16.
|
* present. This number cannot exceed~16.
|
||||||
*
|
*
|
||||||
|
@ -151,13 +205,13 @@ FT_BEGIN_HEADER
|
||||||
* FT_Var_Axis
|
* FT_Var_Axis
|
||||||
*
|
*
|
||||||
* @description:
|
* @description:
|
||||||
* A structure to model a given axis in design space for Multiple
|
* A structure to model a given axis in design space for Adobe MM fonts,
|
||||||
* Masters, TrueType GX, and OpenType variation fonts.
|
* TrueType GX, and OpenType Font Variations.
|
||||||
*
|
*
|
||||||
* @fields:
|
* @fields:
|
||||||
* name ::
|
* name ::
|
||||||
* The axis's name. Not always meaningful for TrueType GX or OpenType
|
* The axis's name. Not always meaningful for TrueType GX or OpenType
|
||||||
* variation fonts.
|
* Font Variations.
|
||||||
*
|
*
|
||||||
* minimum ::
|
* minimum ::
|
||||||
* The axis's minimum design coordinate.
|
* The axis's minimum design coordinate.
|
||||||
|
@ -171,17 +225,17 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* tag ::
|
* tag ::
|
||||||
* The axis's tag (the equivalent to 'name' for TrueType GX and
|
* 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.
|
* Adobe MM fonts if possible.
|
||||||
*
|
*
|
||||||
* strid ::
|
* strid ::
|
||||||
* The axis name entry in the font's 'name' table. This is another
|
* 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
|
* (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:
|
* @note:
|
||||||
* The fields `minimum`, `def`, and `maximum` are 16.16 fractional values
|
* 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).
|
* values are whole numbers (i.e., the fractional part is zero).
|
||||||
*/
|
*/
|
||||||
typedef struct FT_Var_Axis_
|
typedef struct FT_Var_Axis_
|
||||||
|
@ -205,7 +259,7 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @description:
|
* @description:
|
||||||
* A structure to model a named instance in a TrueType GX or OpenType
|
* 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.
|
* This structure can't be used for Adobe MM fonts.
|
||||||
*
|
*
|
||||||
|
@ -215,11 +269,11 @@ FT_BEGIN_HEADER
|
||||||
* entry for each axis.
|
* entry for each axis.
|
||||||
*
|
*
|
||||||
* strid ::
|
* strid ::
|
||||||
* The entry in 'name' table identifying this instance.
|
* An index into the 'name' table identifying this instance.
|
||||||
*
|
*
|
||||||
* psid ::
|
* psid ::
|
||||||
* The entry in 'name' table identifying a PostScript name for this
|
* An index into the 'name' table identifying a PostScript name for
|
||||||
* instance. Value 0xFFFF indicates a missing entry.
|
* this instance. Value 0xFFFF indicates a missing entry.
|
||||||
*/
|
*/
|
||||||
typedef struct FT_Var_Named_Style_
|
typedef struct FT_Var_Named_Style_
|
||||||
{
|
{
|
||||||
|
@ -236,39 +290,33 @@ FT_BEGIN_HEADER
|
||||||
* FT_MM_Var
|
* FT_MM_Var
|
||||||
*
|
*
|
||||||
* @description:
|
* @description:
|
||||||
* A structure to model the axes and space of an Adobe MM, TrueType GX,
|
* A structure to model the axes and space of Adobe MM fonts, TrueType
|
||||||
* or OpenType variation font.
|
* GX, or OpenType Font Variations.
|
||||||
*
|
*
|
||||||
* Some fields are specific to one format and not to the others.
|
* Some fields are specific to one format and not to the others.
|
||||||
*
|
*
|
||||||
* @fields:
|
* @fields:
|
||||||
* num_axis ::
|
* num_axis ::
|
||||||
* The number of axes. The maximum value is~4 for Adobe MM fonts; no
|
* 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 ::
|
* num_designs ::
|
||||||
* The number of designs; should be normally 2^num_axis for Adobe MM
|
* The number of designs; should be normally `2^num_axis` for Adobe MM
|
||||||
* fonts. Not meaningful for TrueType GX or OpenType variation fonts
|
* fonts. Not meaningful for TrueType GX or OpenType Font Variations
|
||||||
* (where every glyph could have a different number of designs).
|
* (where every glyph could have a different number of designs).
|
||||||
*
|
*
|
||||||
* num_namedstyles ::
|
* num_namedstyles ::
|
||||||
* The number of named styles; a 'named style' is a tuple of design
|
* The number of named instances. For Adobe MM fonts, this value is
|
||||||
* coordinates that has a string ID (in the 'name' table) associated
|
* always zero.
|
||||||
* 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.
|
|
||||||
*
|
*
|
||||||
* axis ::
|
* 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
|
* contain slightly more data than Adobe MM fonts. Memory management
|
||||||
* of this pointer is done internally by FreeType.
|
* of this pointer is done internally by FreeType.
|
||||||
*
|
*
|
||||||
* namedstyle ::
|
* namedstyle ::
|
||||||
* A named style (instance) table. Only meaningful for TrueType GX and
|
* An array of named instances. Only meaningful for TrueType GX and
|
||||||
* OpenType variation fonts. Memory management of this pointer is done
|
* OpenType Font Variations. Memory management of this pointer is done
|
||||||
* internally by FreeType.
|
* internally by FreeType.
|
||||||
*/
|
*/
|
||||||
typedef struct FT_MM_Var_
|
typedef struct FT_MM_Var_
|
||||||
|
@ -290,8 +338,8 @@ FT_BEGIN_HEADER
|
||||||
* @description:
|
* @description:
|
||||||
* Retrieve a variation descriptor of a given Adobe MM font.
|
* Retrieve a variation descriptor of a given Adobe MM font.
|
||||||
*
|
*
|
||||||
* This function can't be used with TrueType GX or OpenType variation
|
* This function can't be used with TrueType GX or OpenType Font
|
||||||
* fonts.
|
* Variations.
|
||||||
*
|
*
|
||||||
* @input:
|
* @input:
|
||||||
* face ::
|
* face ::
|
||||||
|
@ -299,7 +347,7 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @output:
|
* @output:
|
||||||
* amaster ::
|
* amaster ::
|
||||||
* The Multiple Masters descriptor.
|
* The Adobe MM font's variation descriptor.
|
||||||
*
|
*
|
||||||
* @return:
|
* @return:
|
||||||
* FreeType error code. 0~means success.
|
* FreeType error code. 0~means success.
|
||||||
|
@ -366,8 +414,8 @@ FT_BEGIN_HEADER
|
||||||
* For Adobe MM fonts, choose an interpolated font design through design
|
* For Adobe MM fonts, choose an interpolated font design through design
|
||||||
* coordinates.
|
* coordinates.
|
||||||
*
|
*
|
||||||
* This function can't be used with TrueType GX or OpenType variation
|
* This function can't be used with TrueType GX or OpenType Font
|
||||||
* fonts.
|
* Variations.
|
||||||
*
|
*
|
||||||
* @inout:
|
* @inout:
|
||||||
* face ::
|
* face ::
|
||||||
|
@ -391,8 +439,8 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* [Since 2.9] If `num_coords` is larger than zero, this function sets
|
* [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
|
* 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,
|
* (i.e., @FT_IS_VARIATION returns true). If `num_coords` is zero, this
|
||||||
* this bit flag gets unset.
|
* bit flag gets unset.
|
||||||
*/
|
*/
|
||||||
FT_EXPORT( FT_Error )
|
FT_EXPORT( FT_Error )
|
||||||
FT_Set_MM_Design_Coordinates( FT_Face face,
|
FT_Set_MM_Design_Coordinates( FT_Face face,
|
||||||
|
@ -428,7 +476,7 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @note:
|
* @note:
|
||||||
* The design coordinates are 16.16 fractional values for TrueType GX and
|
* 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).
|
* 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
|
* [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
|
* [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
|
* 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,
|
* (i.e., @FT_IS_VARIATION returns true). If `num_coords` is zero, this
|
||||||
* this bit flag gets unset.
|
* 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_EXPORT( FT_Error )
|
||||||
FT_Set_Var_Design_Coordinates( FT_Face face,
|
FT_Set_Var_Design_Coordinates( FT_Face face,
|
||||||
|
@ -468,14 +522,14 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @output:
|
* @output:
|
||||||
* coords ::
|
* coords ::
|
||||||
* The design coordinates array.
|
* The design coordinates array, which must be allocated by the user.
|
||||||
*
|
*
|
||||||
* @return:
|
* @return:
|
||||||
* FreeType error code. 0~means success.
|
* FreeType error code. 0~means success.
|
||||||
*
|
*
|
||||||
* @note:
|
* @note:
|
||||||
* The design coordinates are 16.16 fractional values for TrueType GX and
|
* 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).
|
* numbers (i.e., the fractional part is zero).
|
||||||
*
|
*
|
||||||
* @since:
|
* @since:
|
||||||
|
@ -493,8 +547,7 @@ FT_BEGIN_HEADER
|
||||||
* FT_Set_MM_Blend_Coordinates
|
* FT_Set_MM_Blend_Coordinates
|
||||||
*
|
*
|
||||||
* @description:
|
* @description:
|
||||||
* Choose an interpolated font design through normalized blend
|
* Choose an interpolated font design through normalized coordinates.
|
||||||
* coordinates.
|
|
||||||
*
|
*
|
||||||
* This function works with all supported variation formats.
|
* 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.
|
* the number of axes, use default values for the remaining axes.
|
||||||
*
|
*
|
||||||
* coords ::
|
* coords ::
|
||||||
* The design coordinates array. Each element is a 16.16 fractional
|
* The normalized coordinates array. Each element is a 16.16
|
||||||
* value and must be between 0 and 1.0 for Adobe MM fonts, and between
|
* fractional value and must be between 0 and 1.0 for Adobe MM fonts,
|
||||||
* -1.0 and 1.0 for TrueType GX and OpenType variation fonts.
|
* and between -1.0 and 1.0 for TrueType GX and OpenType Font
|
||||||
|
* Variations.
|
||||||
*
|
*
|
||||||
* @return:
|
* @return:
|
||||||
* FreeType error code. 0~means success.
|
* 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
|
* [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
|
* 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,
|
* (i.e., @FT_IS_VARIATION returns true). If `num_coords` is zero, this
|
||||||
* this bit flag gets unset.
|
* 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_EXPORT( FT_Error )
|
||||||
FT_Set_MM_Blend_Coordinates( FT_Face face,
|
FT_Set_MM_Blend_Coordinates( FT_Face face,
|
||||||
|
@ -539,8 +599,8 @@ FT_BEGIN_HEADER
|
||||||
* FT_Get_MM_Blend_Coordinates
|
* FT_Get_MM_Blend_Coordinates
|
||||||
*
|
*
|
||||||
* @description:
|
* @description:
|
||||||
* Get the normalized blend coordinates of the currently selected
|
* Get the normalized coordinates of the currently selected interpolated
|
||||||
* interpolated font.
|
* font.
|
||||||
*
|
*
|
||||||
* This function works with all supported variation formats.
|
* This function works with all supported variation formats.
|
||||||
*
|
*
|
||||||
|
@ -549,14 +609,14 @@ FT_BEGIN_HEADER
|
||||||
* A handle to the source face.
|
* A handle to the source face.
|
||||||
*
|
*
|
||||||
* num_coords ::
|
* num_coords ::
|
||||||
* The number of normalized blend coordinates to retrieve. If it is
|
* The number of normalized coordinates to retrieve. If it is larger
|
||||||
* larger than the number of axes, set the excess values to~0.5 for
|
* than the number of axes, set the excess values to~0.5 for Adobe MM
|
||||||
* Adobe MM fonts, and to~0 for TrueType GX and OpenType variation
|
* fonts, and to~0 for TrueType GX and OpenType Font Variations.
|
||||||
* fonts.
|
|
||||||
*
|
*
|
||||||
* @output:
|
* @output:
|
||||||
* coords ::
|
* 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:
|
* @return:
|
||||||
* FreeType error code. 0~means success.
|
* FreeType error code. 0~means success.
|
||||||
|
@ -610,8 +670,8 @@ FT_BEGIN_HEADER
|
||||||
* For Adobe MM fonts, choose an interpolated font design by directly
|
* For Adobe MM fonts, choose an interpolated font design by directly
|
||||||
* setting the weight vector.
|
* setting the weight vector.
|
||||||
*
|
*
|
||||||
* This function can't be used with TrueType GX or OpenType variation
|
* This function can't be used with TrueType GX or OpenType Font
|
||||||
* fonts.
|
* Variations.
|
||||||
*
|
*
|
||||||
* @inout:
|
* @inout:
|
||||||
* face ::
|
* face ::
|
||||||
|
@ -630,16 +690,16 @@ FT_BEGIN_HEADER
|
||||||
* FreeType error code. 0~means success.
|
* FreeType error code. 0~means success.
|
||||||
*
|
*
|
||||||
* @note:
|
* @note:
|
||||||
* Adobe Multiple Master fonts limit the number of designs, and thus the
|
* Adobe MM fonts limit the number of designs, and thus the length of the
|
||||||
* length of the weight vector to 16~elements.
|
* weight vector, to 16~elements.
|
||||||
*
|
*
|
||||||
* If `len` is larger than zero, this function sets the
|
* 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_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
|
* @FT_IS_VARIATION returns true). If `len` is zero, this bit flag is
|
||||||
* is unset and the weight vector array is reset to the default values.
|
* unset and the weight vector array is reset to the default values.
|
||||||
*
|
*
|
||||||
* The Adobe documentation also states that the values in the
|
* 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.
|
* not seem to be enforced, so is not enforced here, either.
|
||||||
*
|
*
|
||||||
* @since:
|
* @since:
|
||||||
|
@ -659,8 +719,8 @@ FT_BEGIN_HEADER
|
||||||
* @description:
|
* @description:
|
||||||
* For Adobe MM fonts, retrieve the current weight vector of the font.
|
* For Adobe MM fonts, retrieve the current weight vector of the font.
|
||||||
*
|
*
|
||||||
* This function can't be used with TrueType GX or OpenType variation
|
* This function can't be used with TrueType GX or OpenType Font
|
||||||
* fonts.
|
* Variations.
|
||||||
*
|
*
|
||||||
* @inout:
|
* @inout:
|
||||||
* face ::
|
* face ::
|
||||||
|
@ -677,14 +737,14 @@ FT_BEGIN_HEADER
|
||||||
*
|
*
|
||||||
* @output:
|
* @output:
|
||||||
* weightvector ::
|
* weightvector ::
|
||||||
* An array to be filled.
|
* An array to be filled; it must be allocated by the user.
|
||||||
*
|
*
|
||||||
* @return:
|
* @return:
|
||||||
* FreeType error code. 0~means success.
|
* FreeType error code. 0~means success.
|
||||||
*
|
*
|
||||||
* @note:
|
* @note:
|
||||||
* Adobe Multiple Master fonts limit the number of designs, and thus the
|
* Adobe MM fonts limit the number of designs, and thus the length of the
|
||||||
* length of the WeightVector to~16.
|
* weight vector, to~16 elements.
|
||||||
*
|
*
|
||||||
* @since:
|
* @since:
|
||||||
* 2.10
|
* 2.10
|
||||||
|
@ -760,8 +820,8 @@ FT_BEGIN_HEADER
|
||||||
* A handle to the source face.
|
* A handle to the source face.
|
||||||
*
|
*
|
||||||
* instance_index ::
|
* instance_index ::
|
||||||
* The index of the requested instance, starting with value 1. If set
|
* The index of the requested instance, starting with value~1. If set
|
||||||
* to value 0, FreeType switches to font access without a named
|
* to value~0, FreeType switches to font access without a named
|
||||||
* instance.
|
* instance.
|
||||||
*
|
*
|
||||||
* @return:
|
* @return:
|
||||||
|
@ -771,11 +831,11 @@ FT_BEGIN_HEADER
|
||||||
* The function uses the value of `instance_index` to set bits 16-30 of
|
* 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
|
* 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
|
* 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
|
* `face_flags` field gets reset to zero (i.e., @FT_IS_VARIATION returns
|
||||||
* return false).
|
* false).
|
||||||
*
|
*
|
||||||
* For Adobe MM fonts (which don't have named instances) this function
|
* For Adobe MM fonts, this function resets the current face to the
|
||||||
* simply resets the current face to the default instance.
|
* default instance.
|
||||||
*
|
*
|
||||||
* @since:
|
* @since:
|
||||||
* 2.9
|
* 2.9
|
||||||
|
@ -794,10 +854,6 @@ FT_BEGIN_HEADER
|
||||||
* Retrieve the index of the default named instance, to be used with
|
* Retrieve the index of the default named instance, to be used with
|
||||||
* @FT_Set_Named_Instance.
|
* @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
|
* FreeType synthesizes a named instance for the default instance if the
|
||||||
* font does not contain such an entry.
|
* font does not contain such an entry.
|
||||||
*
|
*
|
||||||
|
@ -813,8 +869,8 @@ FT_BEGIN_HEADER
|
||||||
* FreeType error code. 0~means success.
|
* FreeType error code. 0~means success.
|
||||||
*
|
*
|
||||||
* @note:
|
* @note:
|
||||||
* For Adobe MM fonts (which don't have named instances) this function
|
* For Adobe MM fonts, this function always returns zero for
|
||||||
* always returns zero for `instance_index`.
|
* `instance_index`.
|
||||||
*
|
*
|
||||||
* @since:
|
* @since:
|
||||||
* 2.13.1
|
* 2.13.1
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType modules public interface (specification).
|
* FreeType modules public interface (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType module error offsets (specification).
|
* FreeType module error offsets (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2001-2024 by
|
* Copyright (C) 2001-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType API for validating OpenType tables (specification).
|
* FreeType API for validating OpenType tables (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2004-2024 by
|
* Copyright (C) 2004-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
* Support for the FT_Outline type used to store glyph shapes of
|
* Support for the FT_Outline type used to store glyph shapes of
|
||||||
* most scalable font formats (specification).
|
* most scalable font formats (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType API for possible FT_Parameter tags (specification only).
|
* FreeType API for possible FT_Parameter tags (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2017-2024 by
|
* Copyright (C) 2017-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType API for accessing PFR-specific data (specification only).
|
* 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.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType renderer modules public interface (specification).
|
* FreeType renderer modules public interface (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType size objects management (specification).
|
* FreeType size objects management (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
*
|
*
|
||||||
* This is _not_ used to retrieve glyph names!
|
* 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.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType path stroker (specification).
|
* FreeType path stroker (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2002-2024 by
|
* Copyright (C) 2002-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
* FreeType synthesizing code for emboldening and slanting
|
* FreeType synthesizing code for emboldening and slanting
|
||||||
* (specification).
|
* (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2000-2024 by
|
* Copyright (C) 2000-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType low-level system interface definition (specification).
|
* FreeType low-level system interface definition (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType trigonometric functions (specification).
|
* FreeType trigonometric functions (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2001-2024 by
|
* Copyright (C) 2001-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType simple types definitions (specification only).
|
* FreeType simple types definitions (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType API for accessing Windows fnt-specific data.
|
* 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.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -93,8 +93,7 @@ FT_BEGIN_HEADER
|
||||||
* second default codepage that most international versions of Windows
|
* second default codepage that most international versions of Windows
|
||||||
* have. It is one of the OEM codepages from
|
* 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
|
* and is used for the 'DOS boxes', to support legacy applications. A
|
||||||
* German Windows version for example usually uses ANSI codepage 1252
|
* 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).
|
* High-level 'autohint' module-specific interface (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Basic OpenType/CFF object type definitions (specification).
|
* Basic OpenType/CFF object type definitions (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2017-2024 by
|
* Copyright (C) 2017-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
* Basic OpenType/CFF type definitions and interface (specification
|
* Basic OpenType/CFF type definitions and interface (specification
|
||||||
* only).
|
* only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Compiler-specific macro definitions used internally by FreeType.
|
* 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.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -128,8 +128,8 @@ FT_BEGIN_HEADER
|
||||||
* before a function declaration.
|
* before a function declaration.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Visual C, mingw */
|
/* Visual C, MinGW, Cygwin */
|
||||||
#if defined( _WIN32 )
|
#if defined( _WIN32 ) || defined( __CYGWIN__ )
|
||||||
#define FT_INTERNAL_FUNCTION_ATTRIBUTE /* empty */
|
#define FT_INTERNAL_FUNCTION_ATTRIBUTE /* empty */
|
||||||
|
|
||||||
/* gcc, clang */
|
/* gcc, clang */
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Arithmetic computations (specification).
|
* Arithmetic computations (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -27,17 +27,87 @@
|
||||||
FT_BEGIN_HEADER
|
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.
|
* FT_MulDiv() and FT_MulFix() are declared in freetype.h.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FT_CONFIG_OPTION_NO_ASSEMBLER
|
#ifdef FT_CONFIG_OPTION_INLINE_MULFIX
|
||||||
/* Provide assembler fragments for performance-critical functions. */
|
|
||||||
/* These must be defined `static __inline__' with GCC. */
|
|
||||||
|
|
||||||
#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
|
#define FT_MULFIX_ASSEMBLER FT_MulFix_arm
|
||||||
|
|
||||||
|
@ -49,6 +119,7 @@ FT_BEGIN_HEADER
|
||||||
{
|
{
|
||||||
FT_Int32 t, t2;
|
FT_Int32 t, t2;
|
||||||
|
|
||||||
|
#if defined( __CC_ARM ) || defined( __ARMCC__ ) /* RVCT */
|
||||||
|
|
||||||
__asm
|
__asm
|
||||||
{
|
{
|
||||||
|
@ -60,28 +131,8 @@ FT_BEGIN_HEADER
|
||||||
mov a, t2, lsr #16 /* a = t2 >> 16 */
|
mov a, t2, lsr #16 /* a = t2 >> 16 */
|
||||||
orr a, a, t, lsl #16 /* a |= t << 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__ (
|
__asm__ __volatile__ (
|
||||||
"smull %1, %2, %4, %3\n\t" /* (lo=%1,hi=%2) = a*b */
|
"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"(t2), "=&r"(t)
|
||||||
: "r"(a), "r"(b)
|
: "r"(a), "r"(b)
|
||||||
: "cc" );
|
: "cc" );
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* __arm__ && */
|
#elif defined( __i386__ ) || defined( _M_IX86 )
|
||||||
/* ( __thumb2__ || !__thumb__ ) && */
|
|
||||||
/* !( __CC_ARM || __ARMCC__ ) */
|
|
||||||
|
|
||||||
|
|
||||||
#if defined( __i386__ )
|
|
||||||
|
|
||||||
#define FT_MULFIX_ASSEMBLER FT_MulFix_i386
|
#define FT_MULFIX_ASSEMBLER FT_MulFix_i386
|
||||||
|
|
||||||
/* documentation is in freetype.h */
|
/* documentation is in freetype.h */
|
||||||
|
|
||||||
static __inline__ FT_Int32
|
static __inline FT_Int32
|
||||||
FT_MulFix_i386( FT_Int32 a,
|
FT_MulFix_i386( FT_Int32 a,
|
||||||
FT_Int32 b )
|
FT_Int32 b )
|
||||||
{
|
{
|
||||||
FT_Int32 result;
|
FT_Int32 result;
|
||||||
|
|
||||||
|
#if defined( __GNUC__ )
|
||||||
|
|
||||||
__asm__ __volatile__ (
|
__asm__ __volatile__ (
|
||||||
"imul %%edx\n"
|
"imul %%edx\n"
|
||||||
|
@ -132,27 +182,8 @@ FT_BEGIN_HEADER
|
||||||
: "=a"(result), "=d"(b)
|
: "=a"(result), "=d"(b)
|
||||||
: "a"(a), "d"(b)
|
: "a"(a), "d"(b)
|
||||||
: "%ecx", "cc" );
|
: "%ecx", "cc" );
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* i386 */
|
#elif defined( _MSC_VER )
|
||||||
|
|
||||||
#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;
|
|
||||||
|
|
||||||
__asm
|
__asm
|
||||||
{
|
{
|
||||||
|
@ -169,81 +200,21 @@ FT_BEGIN_HEADER
|
||||||
add eax, edx
|
add eax, edx
|
||||||
mov result, eax
|
mov result, eax
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
return result;
|
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
|
#ifdef FT_MULFIX_ASSEMBLER
|
||||||
#define FT_MulFix( a, b ) FT_MULFIX_ASSEMBLER( (FT_Int32)(a), (FT_Int32)(b) )
|
#define FT_MulFix( a, b ) FT_MULFIX_ASSEMBLER( (FT_Int32)(a), (FT_Int32)(b) )
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */
|
||||||
|
|
||||||
|
#endif /* FT_CONFIG_OPTION_INLINE_MULFIX */
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
|
@ -278,40 +249,6 @@ FT_BEGIN_HEADER
|
||||||
FT_Long c );
|
FT_Long c );
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* @function:
|
|
||||||
* FT_MulAddFix
|
|
||||||
*
|
|
||||||
* @description:
|
|
||||||
* Compute `(s[0] * f[0] + s[1] * f[1] + ...) / 0x10000`, where `s[n]` is
|
|
||||||
* usually a 16.16 scalar.
|
|
||||||
*
|
|
||||||
* @input:
|
|
||||||
* s ::
|
|
||||||
* The array of scalars.
|
|
||||||
* f ::
|
|
||||||
* The array of factors.
|
|
||||||
* count ::
|
|
||||||
* The number of entries in the array.
|
|
||||||
*
|
|
||||||
* @return:
|
|
||||||
* The result of `(s[0] * f[0] + s[1] * f[1] + ...) / 0x10000`.
|
|
||||||
*
|
|
||||||
* @note:
|
|
||||||
* This function is currently used for the scaled delta computation of
|
|
||||||
* variation stores. It internally uses 64-bit data types when
|
|
||||||
* available, otherwise it emulates 64-bit math by using 32-bit
|
|
||||||
* operations, which produce a correct result but most likely at a slower
|
|
||||||
* performance in comparison to the implementation base on `int64_t`.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
FT_BASE( FT_Int32 )
|
|
||||||
FT_MulAddFix( FT_Fixed* s,
|
|
||||||
FT_Int32* f,
|
|
||||||
FT_UInt count );
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* A variant of FT_Matrix_Multiply which scales its result afterwards. The
|
* A variant of FT_Matrix_Multiply which scales its result afterwards. The
|
||||||
* idea is that both `a' and `b' are scaled by factors of 10 so that the
|
* idea is that both `a' and `b' are scaled by factors of 10 so that the
|
||||||
|
@ -455,6 +392,10 @@ FT_BEGIN_HEADER
|
||||||
|
|
||||||
#define FT_MSB( x ) FT_MSB_i386( x )
|
#define FT_MSB( x ) FT_MSB_i386( x )
|
||||||
|
|
||||||
|
#elif defined( __CC_ARM )
|
||||||
|
|
||||||
|
#define FT_MSB( x ) ( 31 - __clz( x ) )
|
||||||
|
|
||||||
#elif defined( __SunOS_5_11 )
|
#elif defined( __SunOS_5_11 )
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -526,55 +467,6 @@ FT_BEGIN_HEADER
|
||||||
|
|
||||||
#define ROUND_F26DOT6( x ) ( ( (x) + 32 - ( x < 0 ) ) & -64 )
|
#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
|
FT_END_HEADER
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Debugging and logging component (specification).
|
* Debugging and logging component (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType internal font driver interface (specification).
|
* FreeType internal font driver interface (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* The FreeType glyph loader (specification).
|
* The FreeType glyph loader (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2002-2024 by
|
* Copyright (C) 2002-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg
|
* David Turner, Robert Wilhelm, and Werner Lemberg
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -117,6 +117,18 @@ FT_BEGIN_HEADER
|
||||||
FT_Hash hash,
|
FT_Hash hash,
|
||||||
FT_Memory memory );
|
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*
|
size_t*
|
||||||
ft_hash_str_lookup( const char* key,
|
ft_hash_str_lookup( const char* key,
|
||||||
FT_Hash hash );
|
FT_Hash hash );
|
||||||
|
@ -125,6 +137,17 @@ FT_BEGIN_HEADER
|
||||||
ft_hash_num_lookup( FT_Int num,
|
ft_hash_num_lookup( FT_Int num,
|
||||||
FT_Hash hash );
|
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
|
FT_END_HEADER
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* The FreeType memory management macros (specification).
|
* The FreeType memory management macros (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg
|
* David Turner, Robert Wilhelm, and Werner Lemberg
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
* OpenType Variations type definitions for internal use
|
* OpenType Variations type definitions for internal use
|
||||||
* with the multi-masters service (specification).
|
* 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
|
* David Turner, Robert Wilhelm, Werner Lemberg, George Williams, and
|
||||||
* Dominik Röttsches.
|
* Dominik Röttsches.
|
||||||
*
|
*
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* The FreeType private base classes (specification).
|
* The FreeType private base classes (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -275,6 +275,28 @@ FT_BEGIN_HEADER
|
||||||
FT_GlyphSlot slot,
|
FT_GlyphSlot slot,
|
||||||
FT_Render_Mode mode );
|
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
|
#ifdef FT_CONFIG_OPTION_SUBPIXEL_RENDERING
|
||||||
|
|
||||||
typedef void (*FT_Bitmap_LcdFilterFunc)( FT_Bitmap* bitmap,
|
typedef void (*FT_Bitmap_LcdFilterFunc)( FT_Bitmap* bitmap,
|
||||||
|
@ -498,9 +520,9 @@ FT_BEGIN_HEADER
|
||||||
*/
|
*/
|
||||||
typedef struct FT_ModuleRec_
|
typedef struct FT_ModuleRec_
|
||||||
{
|
{
|
||||||
FT_Module_Class* clazz;
|
const FT_Module_Class* clazz;
|
||||||
FT_Library library;
|
FT_Library library;
|
||||||
FT_Memory memory;
|
FT_Memory memory;
|
||||||
|
|
||||||
} FT_ModuleRec;
|
} FT_ModuleRec;
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Get and set properties of PostScript drivers (specification).
|
* 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.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Embedded resource forks accessor (specification).
|
* Embedded resource forks accessor (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2004-2024 by
|
* Copyright (C) 2004-2025 by
|
||||||
* Masatake YAMATO and Redhat K.K.
|
* Masatake YAMATO and Redhat K.K.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* The FreeType services (specification only).
|
* The FreeType services (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2003-2024 by
|
* Copyright (C) 2003-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Stream handling (specification).
|
* Stream handling (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Tracing handling (specification only).
|
* Tracing handling (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2002-2024 by
|
* Copyright (C) 2002-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
/* definitions of trace levels for FreeType 2 */
|
/* definitions of trace levels for FreeType 2 */
|
||||||
|
|
||||||
/* the maximum string length (if the argument to `FT_TRACE_DEF` */
|
/* 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 */
|
/* another one for the trace level */
|
||||||
#define FT_MAX_TRACE_LEVEL_LENGTH (9 + 1 + 1)
|
#define FT_MAX_TRACE_LEVEL_LENGTH (9 + 1 + 1)
|
||||||
|
|
||||||
|
@ -159,6 +159,7 @@ FT_TRACE_DEF( gxvprop )
|
||||||
FT_TRACE_DEF( gxvtrak )
|
FT_TRACE_DEF( gxvtrak )
|
||||||
|
|
||||||
/* autofit components */
|
/* autofit components */
|
||||||
|
FT_TRACE_DEF( afadjust )
|
||||||
FT_TRACE_DEF( afcjk )
|
FT_TRACE_DEF( afcjk )
|
||||||
FT_TRACE_DEF( afglobal )
|
FT_TRACE_DEF( afglobal )
|
||||||
FT_TRACE_DEF( afhints )
|
FT_TRACE_DEF( afhints )
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType validation support (specification).
|
* FreeType validation support (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2004-2024 by
|
* Copyright (C) 2004-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
* Auxiliary functions and data structures related to PostScript fonts
|
* Auxiliary functions and data structures related to PostScript fonts
|
||||||
* (specification).
|
* (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 1996-2024 by
|
* Copyright (C) 1996-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
* recorders (specification only). These are used to support native
|
* recorders (specification only). These are used to support native
|
||||||
* T1/T2 hints in the 'type1', 'cid', and 'cff' font drivers.
|
* T1/T2 hints in the 'type1', 'cid', and 'cff' font drivers.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2001-2024 by
|
* Copyright (C) 2001-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -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).
|
* The FreeType BDF services (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2003-2024 by
|
* Copyright (C) 2003-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* The FreeType CFF tables loader service (specification).
|
* The FreeType CFF tables loader service (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2017-2024 by
|
* Copyright (C) 2017-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* The FreeType CID font services (specification).
|
* The FreeType CID font services (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2007-2024 by
|
* Copyright (C) 2007-2025 by
|
||||||
* Derek Clegg and Michael Toftdal.
|
* Derek Clegg and Michael Toftdal.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* The FreeType font format service (specification only).
|
* The FreeType font format service (specification only).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2003-2024 by
|
* Copyright (C) 2003-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* The FreeType glyph dictionary services (specification).
|
* The FreeType glyph dictionary services (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2003-2024 by
|
* Copyright (C) 2003-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* FreeType API for validating TrueTypeGX/AAT tables (specification).
|
* FreeType API for validating TrueTypeGX/AAT tables (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2004-2024 by
|
* Copyright (C) 2004-2025 by
|
||||||
* Masatake YAMATO, Red Hat K.K.,
|
* Masatake YAMATO, Red Hat K.K.,
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* The FreeType Kerning service (specification).
|
* The FreeType Kerning service (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2006-2024 by
|
* Copyright (C) 2006-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* The FreeType services for metrics variations (specification).
|
* The FreeType services for metrics variations (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2016-2024 by
|
* Copyright (C) 2016-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
@ -77,7 +77,7 @@ FT_BEGIN_HEADER
|
||||||
typedef void
|
typedef void
|
||||||
(*FT_Metrics_Adjust_Func)( FT_Face face );
|
(*FT_Metrics_Adjust_Func)( FT_Face face );
|
||||||
|
|
||||||
typedef FT_Error
|
typedef void
|
||||||
(*FT_Size_Reset_Func)( FT_Size size );
|
(*FT_Size_Reset_Func)( FT_Size size );
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* The FreeType Multiple Masters and GX var services (specification).
|
* 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.
|
* David Turner, Robert Wilhelm, Werner Lemberg, and Dominik Röttsches.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* The FreeType OpenType validation service (specification).
|
* The FreeType OpenType validation service (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2004-2024 by
|
* Copyright (C) 2004-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Internal PFR service functions (specification).
|
* Internal PFR service functions (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2003-2024 by
|
* Copyright (C) 2003-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* The FreeType PostScript name services (specification).
|
* The FreeType PostScript name services (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2003-2024 by
|
* Copyright (C) 2003-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* The FreeType property service (specification).
|
* The FreeType property service (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012-2024 by
|
* Copyright (C) 2012-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* The FreeType PostScript charmap service (specification).
|
* The FreeType PostScript charmap service (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2003-2024 by
|
* Copyright (C) 2003-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* The FreeType PostScript info service (specification).
|
* The FreeType PostScript info service (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2003-2024 by
|
* Copyright (C) 2003-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* The FreeType SFNT table loading service (specification).
|
* The FreeType SFNT table loading service (specification).
|
||||||
*
|
*
|
||||||
* Copyright (C) 2003-2024 by
|
* Copyright (C) 2003-2025 by
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
* This file is part of the FreeType project, and may only be used,
|
* This file is part of the FreeType project, and may only be used,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* The FreeType TrueType/sfnt cmap extra information service.
|
* The FreeType TrueType/sfnt cmap extra information service.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2003-2024 by
|
* Copyright (C) 2003-2025 by
|
||||||
* Masatake YAMATO, Redhat K.K.,
|
* Masatake YAMATO, Redhat K.K.,
|
||||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
*
|
*
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue