Update FreeType to 2.14.1
This commit is contained in:
2
thirdparty/README.md
vendored
2
thirdparty/README.md
vendored
@ -341,7 +341,7 @@ for UI.
|
||||
## freetype
|
||||
|
||||
- Upstream: https://www.freetype.org
|
||||
- Version: 2.13.3 (42608f77f20749dd6ddc9e0536788eaad70ea4b5, 2024)
|
||||
- Version: 2.14.1 (526ec5c47b9ebccc4754c85ac0c0cdf7c85a5e9b, 2025)
|
||||
- License: FreeType License (BSD-like)
|
||||
|
||||
Files extracted from upstream source:
|
||||
|
||||
4
thirdparty/freetype/FTL.TXT
vendored
4
thirdparty/freetype/FTL.TXT
vendored
@ -49,7 +49,7 @@ Introduction
|
||||
|
||||
"""
|
||||
Portions of this software are copyright © <year> The FreeType
|
||||
Project (www.freetype.org). All rights reserved.
|
||||
Project (https://freetype.org). All rights reserved.
|
||||
"""
|
||||
|
||||
Please replace <year> with the value from the FreeType version you
|
||||
@ -163,7 +163,7 @@ Legal Terms
|
||||
|
||||
Our home page can be found at
|
||||
|
||||
https://www.freetype.org
|
||||
https://freetype.org
|
||||
|
||||
|
||||
--- end of FTL.TXT ---
|
||||
|
||||
7
thirdparty/freetype/LICENSE.TXT
vendored
7
thirdparty/freetype/LICENSE.TXT
vendored
@ -35,9 +35,10 @@ in earlier FreeType versions.
|
||||
The gzip module uses the zlib license (see `src/gzip/zlib.h`) which
|
||||
too is compatible to the above two licenses.
|
||||
|
||||
The files `src/autofit/ft-hb.c` and `src/autofit/ft-hb.h` contain code
|
||||
taken almost verbatim from the HarfBuzz file `hb-ft.cc`, which uses
|
||||
the 'Old MIT' license, compatible to the above two licenses.
|
||||
The files `src/autofit/ft-hb-ft.c`, `src/autofit/ft-hb-decls.h`,
|
||||
`src/autofit/ft-hb-types.h`, and `src/autofit/hb-script-list.h`
|
||||
contain code taken (almost) verbatim from the HarfBuzz library, which
|
||||
uses the 'Old MIT' license compatible to the above two licenses.
|
||||
|
||||
The MD5 checksum support (only used for debugging in development
|
||||
builds) is in the public domain.
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* ANSI-specific configuration file (specification only).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Build macros of the FreeType 2 library.
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* User-selectable configuration macros (specification only).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -158,12 +158,12 @@ FT_BEGIN_HEADER
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* If this macro is defined, try to use an inlined assembler version of the
|
||||
* @FT_MulFix function, which is a 'hotspot' when loading and hinting
|
||||
* glyphs, and which should be executed as fast as possible.
|
||||
* If this macro is defined, try to use an inlined 64-bit or assembler
|
||||
* version of the @FT_MulFix function, which is a 'hotspot' when loading
|
||||
* and hinting glyphs, and which should be executed as fast as possible.
|
||||
*
|
||||
* Note that if your compiler or CPU is not supported, this will default to
|
||||
* the standard and portable implementation found in `ftcalc.c`.
|
||||
* If your compiler is not C99-compliant or CPU assembly is not supported,
|
||||
* you can disable this option.
|
||||
*/
|
||||
#define FT_CONFIG_OPTION_INLINE_MULFIX
|
||||
|
||||
@ -293,6 +293,31 @@ FT_BEGIN_HEADER
|
||||
/* #define FT_CONFIG_OPTION_USE_HARFBUZZ */
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* HarfBuzz dynamic support.
|
||||
*
|
||||
* Define this macro if you want the HarfBuzz library to be loaded at
|
||||
* runtime instead of being linked to FreeType.
|
||||
*
|
||||
* This option has no effect if `FT_CONFIG_OPTION_USE_HARFBUZZ` is not
|
||||
* defined.
|
||||
*
|
||||
* When this option is enabled, FreeType will try to load the HarfBuzz
|
||||
* library at runtime, using `dlopen` or `LoadLibrary`, depending on the
|
||||
* platform. On Microsoft platforms, the library name looked up is
|
||||
* `libharfbuzz-0.dll`. On Apple platforms, the library name looked up
|
||||
* is `libharfbuzz.0.dylib`. On all other platforms, the library name
|
||||
* looked up is `libharfbuzz.so.0`. This name can be overridden by
|
||||
* defining the macro `FT_LIBHARFBUZZ` at FreeType compilation time.
|
||||
*
|
||||
* If you use a build system like cmake or the `configure` script,
|
||||
* options set by those programs have precedence, overwriting the value
|
||||
* here with the configured one.
|
||||
*/
|
||||
/* #define FT_CONFIG_OPTION_USE_HARFBUZZ_DYNAMIC */
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Brotli support.
|
||||
@ -679,7 +704,7 @@ FT_BEGIN_HEADER
|
||||
* defined.
|
||||
*
|
||||
* [1]
|
||||
* https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx
|
||||
* https://learn.microsoft.com/typography/cleartype/truetypecleartype
|
||||
*/
|
||||
#define TT_CONFIG_OPTION_SUBPIXEL_HINTING
|
||||
|
||||
@ -697,7 +722,7 @@ FT_BEGIN_HEADER
|
||||
* flags array which can be used to disambiguate, but old fonts will not
|
||||
* have them.
|
||||
*
|
||||
* https://www.microsoft.com/typography/otspec/glyf.htm
|
||||
* https://learn.microsoft.com/typography/opentype/spec/glyf
|
||||
* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html
|
||||
*/
|
||||
#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED
|
||||
@ -760,10 +785,10 @@ FT_BEGIN_HEADER
|
||||
/**************************************************************************
|
||||
*
|
||||
* Option `TT_CONFIG_OPTION_GPOS_KERNING` enables a basic GPOS kerning
|
||||
* implementation (for TrueType fonts only). With this defined, FreeType
|
||||
* is able to get kerning pair data from the GPOS 'kern' feature as well as
|
||||
* legacy 'kern' tables; without this defined, FreeType will only be able
|
||||
* to use legacy 'kern' tables.
|
||||
* implementation (for TrueType and OpenType fonts only). With this
|
||||
* defined, FreeType is able to get kerning pair data from the GPOS 'kern'
|
||||
* feature as well as legacy 'kern' tables; without this defined, FreeType
|
||||
* will only be able to use legacy 'kern' tables.
|
||||
*
|
||||
* Note that FreeType does not support more advanced GPOS layout features;
|
||||
* even the 'kern' feature implemented here doesn't handle more
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
* ANSI-specific library and header configuration file (specification
|
||||
* only).
|
||||
*
|
||||
* Copyright (C) 2002-2024 by
|
||||
* Copyright (C) 2002-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType integer types definitions.
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -17,6 +17,8 @@
|
||||
#ifndef FREETYPE_CONFIG_INTEGER_TYPES_H_
|
||||
#define FREETYPE_CONFIG_INTEGER_TYPES_H_
|
||||
|
||||
FT_BEGIN_HEADER
|
||||
|
||||
/* There are systems (like the Texas Instruments 'C54x) where a `char` */
|
||||
/* has 16~bits. ANSI~C says that `sizeof(char)` is always~1. Since an */
|
||||
/* `int` has 16~bits also for this system, `sizeof(int)` gives~1 which */
|
||||
@ -242,9 +244,34 @@
|
||||
#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */
|
||||
|
||||
#ifdef FT_INT64
|
||||
|
||||
typedef FT_INT64 FT_Int64;
|
||||
typedef FT_UINT64 FT_UInt64;
|
||||
#endif
|
||||
|
||||
# define FT_INT64_ZERO 0
|
||||
|
||||
#else /* !FT_INT64 */
|
||||
|
||||
/* we need to emulate 64-bit data types if none are available */
|
||||
|
||||
typedef struct FT_Int64_
|
||||
{
|
||||
FT_UInt32 lo;
|
||||
FT_UInt32 hi;
|
||||
|
||||
} FT_Int64;
|
||||
|
||||
typedef struct FT_UInt64_
|
||||
{
|
||||
FT_UInt32 lo;
|
||||
FT_UInt32 hi;
|
||||
|
||||
} FT_UInt64;
|
||||
|
||||
# define FT_INT64_ZERO { 0, 0 }
|
||||
|
||||
#endif /* !FT_INT64 */
|
||||
|
||||
FT_END_HEADER
|
||||
|
||||
#endif /* FREETYPE_CONFIG_INTEGER_TYPES_H_ */
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Mac/OS X support configuration header.
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Define a set of compiler macros used in public FreeType headers.
|
||||
*
|
||||
* Copyright (C) 2020-2024 by
|
||||
* Copyright (C) 2020-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -62,8 +62,8 @@ FT_BEGIN_HEADER
|
||||
* because it is needed by `FT_EXPORT`.
|
||||
*/
|
||||
|
||||
/* Visual C, mingw */
|
||||
#if defined( _WIN32 )
|
||||
/* Visual C, MinGW, Cygwin */
|
||||
#if defined( _WIN32 ) || defined( __CYGWIN__ )
|
||||
|
||||
#if defined( FT2_BUILD_LIBRARY ) && defined( DLL_EXPORT )
|
||||
#define FT_PUBLIC_FUNCTION_ATTRIBUTE __declspec( dllexport )
|
||||
|
||||
98
thirdparty/freetype/include/freetype/freetype.h
vendored
98
thirdparty/freetype/include/freetype/freetype.h
vendored
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType high-level API and common types (specification only).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -811,7 +811,7 @@ FT_BEGIN_HEADER
|
||||
* FT_ENCODING_MS_SYMBOL ::
|
||||
* Microsoft Symbol encoding, used to encode mathematical symbols and
|
||||
* wingdings. For more information, see
|
||||
* 'https://www.microsoft.com/typography/otspec/recom.htm#non-standard-symbol-fonts',
|
||||
* 'https://learn.microsoft.com/typography/opentype/spec/recom#non-standard-symbol-fonts',
|
||||
* 'http://www.kostis.net/charsets/symbol.htm', and
|
||||
* 'http://www.kostis.net/charsets/wingding.htm'.
|
||||
*
|
||||
@ -1068,12 +1068,12 @@ FT_BEGIN_HEADER
|
||||
* the face in the font file (starting with value~0). They are set
|
||||
* to~0 if there is only one face in the font file.
|
||||
*
|
||||
* [Since 2.6.1] Bits 16-30 are relevant to GX and OpenType variation
|
||||
* fonts only, holding the named instance index for the current face
|
||||
* index (starting with value~1; value~0 indicates font access without
|
||||
* a named instance). For non-variation fonts, bits 16-30 are ignored.
|
||||
* If we have the third named instance of face~4, say, `face_index` is
|
||||
* set to 0x00030004.
|
||||
* [Since 2.6.1] Bits 16-30 are relevant to TrueType GX and OpenType
|
||||
* Font Variations only, holding the named instance index for the
|
||||
* current face index (starting with value~1; value~0 indicates font
|
||||
* access without a named instance). For non-variation fonts, bits
|
||||
* 16-30 are ignored. If we have the third named instance of face~4,
|
||||
* say, `face_index` is set to 0x00030004.
|
||||
*
|
||||
* Bit 31 is always zero (that is, `face_index` is always a positive
|
||||
* value).
|
||||
@ -1092,10 +1092,10 @@ FT_BEGIN_HEADER
|
||||
* the face; see @FT_STYLE_FLAG_XXX for the details.
|
||||
*
|
||||
* [Since 2.6.1] Bits 16-30 hold the number of named instances
|
||||
* available for the current face if we have a GX or OpenType variation
|
||||
* (sub)font. Bit 31 is always zero (that is, `style_flags` is always
|
||||
* a positive value). Note that a variation font has always at least
|
||||
* one named instance, namely the default instance.
|
||||
* available for the current face if we have a TrueType GX or OpenType
|
||||
* Font Variation. Bit 31 is always zero (that is, `style_flags` is
|
||||
* always a positive value). Note that a variation font has always at
|
||||
* least one named instance, namely the default instance.
|
||||
*
|
||||
* num_glyphs ::
|
||||
* The number of glyphs in the face. If the face is scalable and has
|
||||
@ -1159,7 +1159,7 @@ FT_BEGIN_HEADER
|
||||
* Note that the bounding box might be off by (at least) one pixel for
|
||||
* hinted fonts. See @FT_Size_Metrics for further discussion.
|
||||
*
|
||||
* Note that the bounding box does not vary in OpenType variation fonts
|
||||
* Note that the bounding box does not vary in OpenType Font Variations
|
||||
* and should only be used in relation to the default instance.
|
||||
*
|
||||
* units_per_EM ::
|
||||
@ -1218,7 +1218,7 @@ FT_BEGIN_HEADER
|
||||
* Fields may be changed after a call to @FT_Attach_File or
|
||||
* @FT_Attach_Stream.
|
||||
*
|
||||
* For an OpenType variation font, the values of the following fields can
|
||||
* For OpenType Font Variations, the values of the following fields can
|
||||
* change after a call to @FT_Set_Var_Design_Coordinates (and friends) if
|
||||
* the font contains an 'MVAR' table: `ascender`, `descender`, `height`,
|
||||
* `underline_position`, and `underline_thickness`.
|
||||
@ -1336,7 +1336,7 @@ FT_BEGIN_HEADER
|
||||
* FT_FACE_FLAG_MULTIPLE_MASTERS ::
|
||||
* The face contains multiple masters and is capable of interpolating
|
||||
* between them. Supported formats are Adobe MM, TrueType GX, and
|
||||
* OpenType variation fonts.
|
||||
* OpenType Font Variations.
|
||||
*
|
||||
* See section @multiple_masters for API details.
|
||||
*
|
||||
@ -1609,7 +1609,7 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* @description:
|
||||
* A macro that returns true whenever a face object is a named instance
|
||||
* of a GX or OpenType variation font.
|
||||
* of a TrueType GX or OpenType Font Variations.
|
||||
*
|
||||
* [Since 2.9] Changing the design coordinates with
|
||||
* @FT_Set_Var_Design_Coordinates or @FT_Set_Var_Blend_Coordinates does
|
||||
@ -2147,7 +2147,7 @@ FT_BEGIN_HEADER
|
||||
* freed.
|
||||
*
|
||||
* [Since 2.10.1] If @FT_LOAD_NO_SCALE is set, outline coordinates of
|
||||
* OpenType variation fonts for a selected instance are internally
|
||||
* OpenType Font Variations for a selected instance are internally
|
||||
* handled as 26.6 fractional font units but returned as (rounded)
|
||||
* integers, as expected. To get unrounded font units, don't use
|
||||
* @FT_LOAD_NO_SCALE but load the glyph with @FT_LOAD_NO_HINTING and
|
||||
@ -2640,14 +2640,14 @@ FT_BEGIN_HEADER
|
||||
* the face in the font file (starting with value~0). Set it to~0 if
|
||||
* there is only one face in the font file.
|
||||
*
|
||||
* [Since 2.6.1] Bits 16-30 are relevant to GX and OpenType variation
|
||||
* fonts only, specifying the named instance index for the current face
|
||||
* index (starting with value~1; value~0 makes FreeType ignore named
|
||||
* instances). For non-variation fonts, bits 16-30 are ignored.
|
||||
* Assuming that you want to access the third named instance in face~4,
|
||||
* `face_index` should be set to 0x00030004. If you want to access
|
||||
* face~4 without variation handling, simply set `face_index` to
|
||||
* value~4.
|
||||
* [Since 2.6.1] Bits 16-30 are relevant to TrueType GX and OpenType
|
||||
* Font Variations only, specifying the named instance index for the
|
||||
* current face index (starting with value~1; value~0 makes FreeType
|
||||
* ignore named instances). For non-variation fonts, bits 16-30 are
|
||||
* ignored. Assuming that you want to access the third named instance
|
||||
* in face~4, `face_index` should be set to 0x00030004. If you want
|
||||
* to access face~4 without variation handling, simply set
|
||||
* `face_index` to value~4.
|
||||
*
|
||||
* `FT_Open_Face` and its siblings can be used to quickly check whether
|
||||
* the font format of a given font resource is supported by FreeType.
|
||||
@ -2914,11 +2914,11 @@ FT_BEGIN_HEADER
|
||||
* of the available glyphs at a given ppem value is available. FreeType
|
||||
* silently uses outlines if there is no bitmap for a given glyph index.
|
||||
*
|
||||
* For GX and OpenType variation fonts, a bitmap strike makes sense only
|
||||
* if the default instance is active (that is, no glyph variation takes
|
||||
* place); otherwise, FreeType simply ignores bitmap strikes. The same
|
||||
* is true for all named instances that are different from the default
|
||||
* instance.
|
||||
* For TrueType GX and OpenType Font Variations, a bitmap strike makes
|
||||
* sense only if the default instance is active (that is, no glyph
|
||||
* variation takes place); otherwise, FreeType simply ignores bitmap
|
||||
* strikes. The same is true for all named instances that are different
|
||||
* from the default instance.
|
||||
*
|
||||
* Don't use this function if you are using the FreeType cache API.
|
||||
*/
|
||||
@ -3078,7 +3078,7 @@ FT_BEGIN_HEADER
|
||||
* is dependent entirely on how the size is defined in the source face.
|
||||
* The font designer chooses the final size of each glyph relative to
|
||||
* this size. For more information refer to
|
||||
* 'https://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html'.
|
||||
* 'https://freetype.org/freetype2/docs/glyphs/glyphs-2.html'.
|
||||
*
|
||||
* Contrary to @FT_Set_Char_Size, this function doesn't have special code
|
||||
* to normalize zero-valued widths, heights, or resolutions, which are
|
||||
@ -3441,8 +3441,10 @@ FT_BEGIN_HEADER
|
||||
* blending of the color glyph layers associated with the glyph index,
|
||||
* using the same bitmap format as embedded color bitmap images. This
|
||||
* is mainly for convenience and works only for glyphs in 'COLR' v0
|
||||
* tables (or glyphs in 'COLR' v1 tables that exclusively use v0
|
||||
* features). For full control of color layers use
|
||||
* tables. **There is no rendering support for 'COLR' v1** (with the
|
||||
* exception of v1 tables that exclusively use v0 features)! You need
|
||||
* a graphics library like Skia or Cairo to interpret the graphics
|
||||
* commands stored in v1 tables. For full control of color layers use
|
||||
* @FT_Get_Color_Glyph_Layer and FreeType's color functions like
|
||||
* @FT_Palette_Select instead of setting @FT_LOAD_COLOR for rendering
|
||||
* so that the client application can handle blending by itself.
|
||||
@ -3895,8 +3897,10 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* This process can cost performance. There is an approximation that
|
||||
* does not need to know about the background color; see
|
||||
* https://bel.fi/alankila/lcd/ and
|
||||
* https://bel.fi/alankila/lcd/alpcor.html for details.
|
||||
* https://web.archive.org/web/20211019204945/https://bel.fi/alankila/lcd/
|
||||
* and
|
||||
* https://web.archive.org/web/20210211002939/https://bel.fi/alankila/lcd/alpcor.html
|
||||
* for details.
|
||||
*
|
||||
* **ATTENTION**: Linear blending is even more important when dealing
|
||||
* with subpixel-rendered glyphs to prevent color-fringing! A
|
||||
@ -3993,13 +3997,13 @@ FT_BEGIN_HEADER
|
||||
* out of the scope of this API function -- they can be implemented
|
||||
* through format-specific interfaces.
|
||||
*
|
||||
* Note that, for TrueType fonts only, this can extract data from both
|
||||
* the 'kern' table and the basic, pair-wise kerning feature from the
|
||||
* GPOS table (with `TT_CONFIG_OPTION_GPOS_KERNING` enabled), though
|
||||
* FreeType does not support the more advanced GPOS layout features; use
|
||||
* a library like HarfBuzz for those instead. If a font has both a
|
||||
* 'kern' table and kern features of a GPOS table, the 'kern' table will
|
||||
* be used.
|
||||
* Note that, for TrueType and OpenType fonts only, this can extract data
|
||||
* from both the 'kern' table and the basic, pair-wise kerning feature
|
||||
* from the GPOS table (with `TT_CONFIG_OPTION_GPOS_KERNING` enabled),
|
||||
* though FreeType does not support the more advanced GPOS layout
|
||||
* features; use a library like HarfBuzz for those instead. If a font
|
||||
* has both a 'kern' table and kern features of a GPOS table, the 'kern'
|
||||
* table will be used.
|
||||
*
|
||||
* Also note for right-to-left scripts, the functionality may differ for
|
||||
* fonts with GPOS tables vs. 'kern' tables. For GPOS, right-to-left
|
||||
@ -4530,7 +4534,7 @@ FT_BEGIN_HEADER
|
||||
* table description in the OpenType specification for the meaning of the
|
||||
* various flags (which get synthesized for non-OpenType subglyphs).
|
||||
*
|
||||
* https://docs.microsoft.com/en-us/typography/opentype/spec/glyf#composite-glyph-description
|
||||
* https://learn.microsoft.com/typography/opentype/spec/glyf#composite-glyph-description
|
||||
*
|
||||
* @values:
|
||||
* FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS ::
|
||||
@ -4593,7 +4597,7 @@ FT_BEGIN_HEADER
|
||||
* interpreted depending on the flags returned in `*p_flags`. See the
|
||||
* OpenType specification for details.
|
||||
*
|
||||
* https://docs.microsoft.com/en-us/typography/opentype/spec/glyf#composite-glyph-description
|
||||
* https://learn.microsoft.com/typography/opentype/spec/glyf#composite-glyph-description
|
||||
*
|
||||
*/
|
||||
FT_EXPORT( FT_Error )
|
||||
@ -4619,7 +4623,7 @@ FT_BEGIN_HEADER
|
||||
* associated with a font.
|
||||
*
|
||||
* See
|
||||
* https://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/FontPolicies.pdf
|
||||
* https://adobe-type-tools.github.io/font-tech-notes/pdfs/AcrobatDC_FontPolicies.pdf
|
||||
* for more details.
|
||||
*
|
||||
* @values:
|
||||
@ -5173,8 +5177,8 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
*/
|
||||
#define FREETYPE_MAJOR 2
|
||||
#define FREETYPE_MINOR 13
|
||||
#define FREETYPE_PATCH 3
|
||||
#define FREETYPE_MINOR 14
|
||||
#define FREETYPE_PATCH 1
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Quick computation of advance widths (specification only).
|
||||
*
|
||||
* Copyright (C) 2008-2024 by
|
||||
* Copyright (C) 2008-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType exact bbox computation (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
2
thirdparty/freetype/include/freetype/ftbdf.h
vendored
2
thirdparty/freetype/include/freetype/ftbdf.h
vendored
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType API for accessing BDF-specific strings (specification).
|
||||
*
|
||||
* Copyright (C) 2002-2024 by
|
||||
* Copyright (C) 2002-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType utility functions for bitmaps (specification).
|
||||
*
|
||||
* Copyright (C) 2004-2024 by
|
||||
* Copyright (C) 2004-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Bzip2-compressed stream support.
|
||||
*
|
||||
* Copyright (C) 2010-2024 by
|
||||
* Copyright (C) 2010-2025 by
|
||||
* Joel Klinghed.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType Cache subsystem (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
2
thirdparty/freetype/include/freetype/ftcid.h
vendored
2
thirdparty/freetype/include/freetype/ftcid.h
vendored
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType API for accessing CID font information (specification).
|
||||
*
|
||||
* Copyright (C) 2007-2024 by
|
||||
* Copyright (C) 2007-2025 by
|
||||
* Dereg Clegg and Michael Toftdal.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
17
thirdparty/freetype/include/freetype/ftcolor.h
vendored
17
thirdparty/freetype/include/freetype/ftcolor.h
vendored
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType's glyph color management (specification).
|
||||
*
|
||||
* Copyright (C) 2018-2024 by
|
||||
* Copyright (C) 2018-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -317,6 +317,15 @@ FT_BEGIN_HEADER
|
||||
* @description:
|
||||
* The functions described here allow access of colored glyph layer data
|
||||
* in OpenType's 'COLR' tables.
|
||||
*
|
||||
* Note that FreeType does *not* provide rendering in general of glyphs
|
||||
* that use a 'COLR' table! While FreeType has very limited rendering
|
||||
* support for 'COLR' v0 tables (without a possibility to change the
|
||||
* color palette) via @FT_Render_Glyph, there is no such convenience
|
||||
* code for 'COLR' v1 tables -- while it appears that v1 is simply an
|
||||
* 'improved' version of v0, this is not the case: it is a completely
|
||||
* different color font format, and you need a dedicated graphics
|
||||
* library like Skia or Cairo to handle a v1 table's drawing commands.
|
||||
*/
|
||||
|
||||
|
||||
@ -359,7 +368,7 @@ FT_BEGIN_HEADER
|
||||
* iteratively retrieve the colored glyph layers associated with the
|
||||
* current glyph slot.
|
||||
*
|
||||
* https://docs.microsoft.com/en-us/typography/opentype/spec/colr
|
||||
* https://learn.microsoft.com/typography/opentype/spec/colr
|
||||
*
|
||||
* The glyph layer data for a given glyph index, if present, provides an
|
||||
* alternative, multi-color glyph representation: Instead of rendering
|
||||
@ -1518,7 +1527,7 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* @return:
|
||||
* Value~1 if a clip box is found. If no clip box is found or an error
|
||||
* occured, value~0 is returned.
|
||||
* occurred, value~0 is returned.
|
||||
*
|
||||
* @note:
|
||||
* To retrieve the clip box in font units, reset scale to units-per-em
|
||||
@ -1646,7 +1655,7 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* @return:
|
||||
* Value~1 if everything is OK. Value~0 if no details can be found for
|
||||
* this paint or any other error occured.
|
||||
* this paint or any other error occurred.
|
||||
*
|
||||
* @since:
|
||||
* 2.13
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType API for controlling driver modules (specification only).
|
||||
*
|
||||
* Copyright (C) 2017-2024 by
|
||||
* Copyright (C) 2017-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -282,7 +282,7 @@ FT_BEGIN_HEADER
|
||||
* minimize hinting techniques that were problematic with the extra
|
||||
* resolution of ClearType; see
|
||||
* http://rastertragedy.com/RTRCh4.htm#Sec1 and
|
||||
* https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx.
|
||||
* https://learn.microsoft.com/typography/cleartype/truetypecleartype.
|
||||
* This technique is not to be confused with ClearType compatible widths.
|
||||
* ClearType backward compatibility has no direct impact on changing
|
||||
* advance widths, but there might be an indirect impact on disabling
|
||||
@ -784,7 +784,7 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* Details on subpixel hinting and some of the necessary tweaks can be
|
||||
* found in Greg Hitchcock's whitepaper at
|
||||
* 'https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx'.
|
||||
* 'https://learn.microsoft.com/typography/cleartype/truetypecleartype'.
|
||||
* Note that FreeType currently doesn't really 'subpixel hint' (6x1, 6x2,
|
||||
* or 6x5 supersampling) like discussed in the paper. Depending on the
|
||||
* chosen interpreter, it simply ignores instructions on vertical stems
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType error codes (specification).
|
||||
*
|
||||
* Copyright (C) 2002-2024 by
|
||||
* Copyright (C) 2002-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType error code handling (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Support functions for font formats.
|
||||
*
|
||||
* Copyright (C) 2002-2024 by
|
||||
* Copyright (C) 2002-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Access of TrueType's 'gasp' table (specification).
|
||||
*
|
||||
* Copyright (C) 2007-2024 by
|
||||
* Copyright (C) 2007-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType convenience functions to handle glyphs (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType API for validating TrueTypeGX/AAT tables (specification).
|
||||
*
|
||||
* Copyright (C) 2004-2024 by
|
||||
* Copyright (C) 2004-2025 by
|
||||
* Masatake YAMATO, Redhat K.K,
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Gzip-compressed stream support.
|
||||
*
|
||||
* Copyright (C) 2002-2024 by
|
||||
* Copyright (C) 2002-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
* FreeType glyph image formats and default raster interface
|
||||
* (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -267,6 +267,10 @@ FT_BEGIN_HEADER
|
||||
* *logical* one. For example, if @FT_Pixel_Mode is set to
|
||||
* `FT_PIXEL_MODE_LCD`, the logical width is a just a third of the
|
||||
* physical one.
|
||||
*
|
||||
* An empty bitmap with a NULL `buffer` is valid, with `rows` and/or
|
||||
* `pitch` also set to 0. Such bitmaps might be produced while rendering
|
||||
* empty or degenerate outlines.
|
||||
*/
|
||||
typedef struct FT_Bitmap_
|
||||
{
|
||||
@ -439,7 +443,7 @@ FT_BEGIN_HEADER
|
||||
* rasterizer; see the `tags` field in @FT_Outline.
|
||||
*
|
||||
* Please refer to the description of the 'SCANTYPE' instruction in the
|
||||
* [OpenType specification](https://learn.microsoft.com/en-us/typography/opentype/spec/tt_instructions#scantype)
|
||||
* [OpenType specification](https://learn.microsoft.com/typography/opentype/spec/tt_instructions#scantype)
|
||||
* how simple drop-outs, smart drop-outs, and stubs are defined.
|
||||
*/
|
||||
#define FT_OUTLINE_NONE 0x0
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType incremental loading (specification).
|
||||
*
|
||||
* Copyright (C) 2002-2024 by
|
||||
* Copyright (C) 2002-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
* FreeType API for color filtering of subpixel bitmap glyphs
|
||||
* (specification).
|
||||
*
|
||||
* Copyright (C) 2006-2024 by
|
||||
* Copyright (C) 2006-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Generic list support for FreeType (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Additional debugging APIs.
|
||||
*
|
||||
* Copyright (C) 2020-2024 by
|
||||
* Copyright (C) 2020-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
2
thirdparty/freetype/include/freetype/ftlzw.h
vendored
2
thirdparty/freetype/include/freetype/ftlzw.h
vendored
@ -4,7 +4,7 @@
|
||||
*
|
||||
* LZW-compressed stream support.
|
||||
*
|
||||
* Copyright (C) 2004-2024 by
|
||||
* Copyright (C) 2004-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
2
thirdparty/freetype/include/freetype/ftmac.h
vendored
2
thirdparty/freetype/include/freetype/ftmac.h
vendored
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Additional Mac-specific API.
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
256
thirdparty/freetype/include/freetype/ftmm.h
vendored
256
thirdparty/freetype/include/freetype/ftmm.h
vendored
@ -2,9 +2,9 @@
|
||||
*
|
||||
* ftmm.h
|
||||
*
|
||||
* FreeType Multiple Master font interface (specification).
|
||||
* FreeType variation font interface (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -37,24 +37,79 @@ FT_BEGIN_HEADER
|
||||
* multiple_masters
|
||||
*
|
||||
* @title:
|
||||
* Multiple Masters
|
||||
* OpenType Font Variations, TrueType GX, and Adobe MM Fonts
|
||||
*
|
||||
* @abstract:
|
||||
* How to manage Multiple Masters fonts.
|
||||
* How to manage variable fonts with multiple design axes.
|
||||
*
|
||||
* @description:
|
||||
* The following types and functions are used to manage Multiple Master
|
||||
* fonts, i.e., the selection of specific design instances by setting
|
||||
* design axis coordinates.
|
||||
* The following types and functions manage OpenType Font Variations,
|
||||
* Adobe Multiple Master (MM) fonts, and Apple TrueType GX fonts. These
|
||||
* formats have in common that they allow the selection of specific
|
||||
* design instances by setting design coordinates for one or more axes
|
||||
* like font weight or width.
|
||||
*
|
||||
* Besides Adobe MM fonts, the interface supports Apple's TrueType GX and
|
||||
* OpenType variation fonts. Some of the routines only work with Adobe
|
||||
* MM fonts, others will work with all three types. They are similar
|
||||
* enough that a consistent interface makes sense.
|
||||
* For historical reasons there are two interfaces. The first, older one
|
||||
* can be used with Adobe MM fonts only, and the second, newer one is a
|
||||
* unified interface that handles all three font formats. However, some
|
||||
* differences remain and are documented accordingly; in particular,
|
||||
* Adobe MM fonts don't have named instances (see below).
|
||||
*
|
||||
* For Adobe MM fonts, macro @FT_IS_SFNT returns false. For GX and
|
||||
* OpenType variation fonts, it returns true.
|
||||
* For Adobe MM fonts, macro @FT_IS_SFNT returns false. For TrueType GX
|
||||
* and OpenType Font Variations, it returns true.
|
||||
*
|
||||
* We use mostly the terminology of the OpenType standard. Here are some
|
||||
* important technical terms.
|
||||
*
|
||||
* * A 'named instance' is a tuple of design coordinates that has a
|
||||
* string ID (i.e., an index into the font's 'name' table) associated
|
||||
* with it. The font can tell the user that, for example,
|
||||
* [Weight=700,Width=110] is 'Bold'. Another name for 'named instance'
|
||||
* is 'named style'.
|
||||
*
|
||||
* Adobe MM fonts don't have named instances.
|
||||
*
|
||||
* * The 'default instance' of a variation font is that instance for
|
||||
* which the nth axis coordinate is equal to the nth default axis
|
||||
* coordinate (i.e., `axis[n].def` as specified in the @FT_MM_Var
|
||||
* structure), with~n covering all axes. In TrueType GX and OpenType
|
||||
* Font Variations, the default instance is explicitly given. In Adobe
|
||||
* MM fonts, the `WeightVector` entry as found in the font file is
|
||||
* taken as the default instance.
|
||||
*
|
||||
* For TrueType GX and OpenType Font Variations, FreeType synthesizes
|
||||
* a named instance for the default instance if the font does not
|
||||
* contain such an entry.
|
||||
*
|
||||
* * 'Design coordinates' are the axis values found in a variation font
|
||||
* file. Their meaning is specified by the font designer and the
|
||||
* values are rather arbitrary.
|
||||
*
|
||||
* For example, the 'weight' axis in design coordinates might vary
|
||||
* between 100 (thin) and 900 (heavy) in font~A, while font~B
|
||||
* contains values between 400 (normal) and 800 (extra bold).
|
||||
*
|
||||
* * 'Normalized coordinates' are design coordinates mapped to a standard
|
||||
* range; they are also called 'blend coordinates'.
|
||||
*
|
||||
* For TrueType GX and OpenType Font Variations, the range is [-1;1],
|
||||
* with the minimum mapped to value~-1, the default mapped to
|
||||
* value~0, and the maximum mapped to value~1, and all other
|
||||
* coordinates mapped to intervening points. Please look up the
|
||||
* [OpenType
|
||||
* specification](https://learn.microsoft.com/en-us/typography/opentype/spec/otvaroverview)
|
||||
* on how this mapping works in detail.
|
||||
*
|
||||
* For Adobe MM fonts, this standard range is [0;1], with the minimum
|
||||
* mapped to value~0 and the maximum mapped to value~1, and all other
|
||||
* coordinates mapped to intervening points. Please look up [Adobe
|
||||
* TechNote
|
||||
* #5015](https://adobe-type-tools.github.io/font-tech-notes/pdfs/5015.Type1_Supp.pdf)
|
||||
* on how this mapping works in detail.
|
||||
*
|
||||
* Assuming that the two fonts in the previous example are OpenType
|
||||
* Font Variations, both font~A's [100;900] and font~B's [400;800]
|
||||
* coordinate ranges get mapped to [-1;1].
|
||||
*/
|
||||
|
||||
|
||||
@ -64,14 +119,14 @@ FT_BEGIN_HEADER
|
||||
* T1_MAX_MM_XXX
|
||||
*
|
||||
* @description:
|
||||
* Multiple Masters limits as defined in their specifications.
|
||||
* Adobe MM font limits as defined in their specifications.
|
||||
*
|
||||
* @values:
|
||||
* T1_MAX_MM_AXIS ::
|
||||
* The maximum number of Multiple Masters axes.
|
||||
* The maximum number of Adobe MM font axes.
|
||||
*
|
||||
* T1_MAX_MM_DESIGNS ::
|
||||
* The maximum number of Multiple Masters designs.
|
||||
* The maximum number of Adobe MM font designs.
|
||||
*
|
||||
* T1_MAX_MM_MAP_POINTS ::
|
||||
* The maximum number of elements in a design map.
|
||||
@ -88,11 +143,10 @@ FT_BEGIN_HEADER
|
||||
* FT_MM_Axis
|
||||
*
|
||||
* @description:
|
||||
* A structure to model a given axis in design space for Multiple Masters
|
||||
* fonts.
|
||||
* A structure to model a given axis in design space for Adobe MM fonts.
|
||||
*
|
||||
* This structure can't be used for TrueType GX or OpenType variation
|
||||
* fonts.
|
||||
* This structure can't be used with TrueType GX or OpenType Font
|
||||
* Variations.
|
||||
*
|
||||
* @fields:
|
||||
* name ::
|
||||
@ -119,17 +173,17 @@ FT_BEGIN_HEADER
|
||||
* FT_Multi_Master
|
||||
*
|
||||
* @description:
|
||||
* A structure to model the axes and space of a Multiple Masters font.
|
||||
* A structure to model the axes and space of an Adobe MM font.
|
||||
*
|
||||
* This structure can't be used for TrueType GX or OpenType variation
|
||||
* fonts.
|
||||
* This structure can't be used with TrueType GX or OpenType Font
|
||||
* Variations.
|
||||
*
|
||||
* @fields:
|
||||
* num_axis ::
|
||||
* Number of axes. Cannot exceed~4.
|
||||
*
|
||||
* num_designs ::
|
||||
* Number of designs; should be normally 2^num_axis even though the
|
||||
* Number of designs; should be normally `2^num_axis` even though the
|
||||
* Type~1 specification strangely allows for intermediate designs to be
|
||||
* present. This number cannot exceed~16.
|
||||
*
|
||||
@ -151,13 +205,13 @@ FT_BEGIN_HEADER
|
||||
* FT_Var_Axis
|
||||
*
|
||||
* @description:
|
||||
* A structure to model a given axis in design space for Multiple
|
||||
* Masters, TrueType GX, and OpenType variation fonts.
|
||||
* A structure to model a given axis in design space for Adobe MM fonts,
|
||||
* TrueType GX, and OpenType Font Variations.
|
||||
*
|
||||
* @fields:
|
||||
* name ::
|
||||
* The axis's name. Not always meaningful for TrueType GX or OpenType
|
||||
* variation fonts.
|
||||
* Font Variations.
|
||||
*
|
||||
* minimum ::
|
||||
* The axis's minimum design coordinate.
|
||||
@ -171,17 +225,17 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* tag ::
|
||||
* The axis's tag (the equivalent to 'name' for TrueType GX and
|
||||
* OpenType variation fonts). FreeType provides default values for
|
||||
* OpenType Font Variations). FreeType provides default values for
|
||||
* Adobe MM fonts if possible.
|
||||
*
|
||||
* strid ::
|
||||
* The axis name entry in the font's 'name' table. This is another
|
||||
* (and often better) version of the 'name' field for TrueType GX or
|
||||
* OpenType variation fonts. Not meaningful for Adobe MM fonts.
|
||||
* OpenType Font Variations. Not meaningful for Adobe MM fonts.
|
||||
*
|
||||
* @note:
|
||||
* The fields `minimum`, `def`, and `maximum` are 16.16 fractional values
|
||||
* for TrueType GX and OpenType variation fonts. For Adobe MM fonts, the
|
||||
* for TrueType GX and OpenType Font Variations. For Adobe MM fonts, the
|
||||
* values are whole numbers (i.e., the fractional part is zero).
|
||||
*/
|
||||
typedef struct FT_Var_Axis_
|
||||
@ -205,7 +259,7 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* @description:
|
||||
* A structure to model a named instance in a TrueType GX or OpenType
|
||||
* variation font.
|
||||
* Font Variations.
|
||||
*
|
||||
* This structure can't be used for Adobe MM fonts.
|
||||
*
|
||||
@ -215,11 +269,11 @@ FT_BEGIN_HEADER
|
||||
* entry for each axis.
|
||||
*
|
||||
* strid ::
|
||||
* The entry in 'name' table identifying this instance.
|
||||
* An index into the 'name' table identifying this instance.
|
||||
*
|
||||
* psid ::
|
||||
* The entry in 'name' table identifying a PostScript name for this
|
||||
* instance. Value 0xFFFF indicates a missing entry.
|
||||
* An index into the 'name' table identifying a PostScript name for
|
||||
* this instance. Value 0xFFFF indicates a missing entry.
|
||||
*/
|
||||
typedef struct FT_Var_Named_Style_
|
||||
{
|
||||
@ -236,39 +290,33 @@ FT_BEGIN_HEADER
|
||||
* FT_MM_Var
|
||||
*
|
||||
* @description:
|
||||
* A structure to model the axes and space of an Adobe MM, TrueType GX,
|
||||
* or OpenType variation font.
|
||||
* A structure to model the axes and space of Adobe MM fonts, TrueType
|
||||
* GX, or OpenType Font Variations.
|
||||
*
|
||||
* Some fields are specific to one format and not to the others.
|
||||
*
|
||||
* @fields:
|
||||
* num_axis ::
|
||||
* The number of axes. The maximum value is~4 for Adobe MM fonts; no
|
||||
* limit in TrueType GX or OpenType variation fonts.
|
||||
* limit in TrueType GX or OpenType Font Variations.
|
||||
*
|
||||
* num_designs ::
|
||||
* The number of designs; should be normally 2^num_axis for Adobe MM
|
||||
* fonts. Not meaningful for TrueType GX or OpenType variation fonts
|
||||
* The number of designs; should be normally `2^num_axis` for Adobe MM
|
||||
* fonts. Not meaningful for TrueType GX or OpenType Font Variations
|
||||
* (where every glyph could have a different number of designs).
|
||||
*
|
||||
* num_namedstyles ::
|
||||
* The number of named styles; a 'named style' is a tuple of design
|
||||
* coordinates that has a string ID (in the 'name' table) associated
|
||||
* with it. The font can tell the user that, for example,
|
||||
* [Weight=1.5,Width=1.1] is 'Bold'. Another name for 'named style' is
|
||||
* 'named instance'.
|
||||
*
|
||||
* For Adobe Multiple Masters fonts, this value is always zero because
|
||||
* the format does not support named styles.
|
||||
* The number of named instances. For Adobe MM fonts, this value is
|
||||
* always zero.
|
||||
*
|
||||
* axis ::
|
||||
* An axis descriptor table. TrueType GX and OpenType variation fonts
|
||||
* An axis descriptor table. TrueType GX and OpenType Font Variations
|
||||
* contain slightly more data than Adobe MM fonts. Memory management
|
||||
* of this pointer is done internally by FreeType.
|
||||
*
|
||||
* namedstyle ::
|
||||
* A named style (instance) table. Only meaningful for TrueType GX and
|
||||
* OpenType variation fonts. Memory management of this pointer is done
|
||||
* An array of named instances. Only meaningful for TrueType GX and
|
||||
* OpenType Font Variations. Memory management of this pointer is done
|
||||
* internally by FreeType.
|
||||
*/
|
||||
typedef struct FT_MM_Var_
|
||||
@ -290,8 +338,8 @@ FT_BEGIN_HEADER
|
||||
* @description:
|
||||
* Retrieve a variation descriptor of a given Adobe MM font.
|
||||
*
|
||||
* This function can't be used with TrueType GX or OpenType variation
|
||||
* fonts.
|
||||
* This function can't be used with TrueType GX or OpenType Font
|
||||
* Variations.
|
||||
*
|
||||
* @input:
|
||||
* face ::
|
||||
@ -299,7 +347,7 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* @output:
|
||||
* amaster ::
|
||||
* The Multiple Masters descriptor.
|
||||
* The Adobe MM font's variation descriptor.
|
||||
*
|
||||
* @return:
|
||||
* FreeType error code. 0~means success.
|
||||
@ -366,8 +414,8 @@ FT_BEGIN_HEADER
|
||||
* For Adobe MM fonts, choose an interpolated font design through design
|
||||
* coordinates.
|
||||
*
|
||||
* This function can't be used with TrueType GX or OpenType variation
|
||||
* fonts.
|
||||
* This function can't be used with TrueType GX or OpenType Font
|
||||
* Variations.
|
||||
*
|
||||
* @inout:
|
||||
* face ::
|
||||
@ -391,8 +439,8 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* [Since 2.9] If `num_coords` is larger than zero, this function sets
|
||||
* the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field
|
||||
* (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero,
|
||||
* this bit flag gets unset.
|
||||
* (i.e., @FT_IS_VARIATION returns true). If `num_coords` is zero, this
|
||||
* bit flag gets unset.
|
||||
*/
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Set_MM_Design_Coordinates( FT_Face face,
|
||||
@ -428,7 +476,7 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* @note:
|
||||
* The design coordinates are 16.16 fractional values for TrueType GX and
|
||||
* OpenType variation fonts. For Adobe MM fonts, the values are supposed
|
||||
* OpenType Font Variations. For Adobe MM fonts, the values are supposed
|
||||
* to be whole numbers (i.e., the fractional part is zero).
|
||||
*
|
||||
* [Since 2.8.1] To reset all axes to the default values, call the
|
||||
@ -438,8 +486,14 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* [Since 2.9] If `num_coords` is larger than zero, this function sets
|
||||
* the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field
|
||||
* (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero,
|
||||
* this bit flag gets unset.
|
||||
* (i.e., @FT_IS_VARIATION returns true). If `num_coords` is zero, this
|
||||
* bit flag gets unset.
|
||||
*
|
||||
* [Since 2.14] This function also sets the @FT_FACE_FLAG_VARIATION bit
|
||||
* in @FT_Face's `face_flags` field (i.e., @FT_IS_VARIATION returns
|
||||
* true) if any of the provided coordinates is different from the face's
|
||||
* default value for the corresponding axis, that is, the set up face is
|
||||
* not at its default position.
|
||||
*/
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Set_Var_Design_Coordinates( FT_Face face,
|
||||
@ -468,14 +522,14 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* @output:
|
||||
* coords ::
|
||||
* The design coordinates array.
|
||||
* The design coordinates array, which must be allocated by the user.
|
||||
*
|
||||
* @return:
|
||||
* FreeType error code. 0~means success.
|
||||
*
|
||||
* @note:
|
||||
* The design coordinates are 16.16 fractional values for TrueType GX and
|
||||
* OpenType variation fonts. For Adobe MM fonts, the values are whole
|
||||
* OpenType Font Variations. For Adobe MM fonts, the values are whole
|
||||
* numbers (i.e., the fractional part is zero).
|
||||
*
|
||||
* @since:
|
||||
@ -493,8 +547,7 @@ FT_BEGIN_HEADER
|
||||
* FT_Set_MM_Blend_Coordinates
|
||||
*
|
||||
* @description:
|
||||
* Choose an interpolated font design through normalized blend
|
||||
* coordinates.
|
||||
* Choose an interpolated font design through normalized coordinates.
|
||||
*
|
||||
* This function works with all supported variation formats.
|
||||
*
|
||||
@ -509,9 +562,10 @@ FT_BEGIN_HEADER
|
||||
* the number of axes, use default values for the remaining axes.
|
||||
*
|
||||
* coords ::
|
||||
* The design coordinates array. Each element is a 16.16 fractional
|
||||
* value and must be between 0 and 1.0 for Adobe MM fonts, and between
|
||||
* -1.0 and 1.0 for TrueType GX and OpenType variation fonts.
|
||||
* The normalized coordinates array. Each element is a 16.16
|
||||
* fractional value and must be between 0 and 1.0 for Adobe MM fonts,
|
||||
* and between -1.0 and 1.0 for TrueType GX and OpenType Font
|
||||
* Variations.
|
||||
*
|
||||
* @return:
|
||||
* FreeType error code. 0~means success.
|
||||
@ -524,8 +578,14 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* [Since 2.9] If `num_coords` is larger than zero, this function sets
|
||||
* the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field
|
||||
* (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero,
|
||||
* this bit flag gets unset.
|
||||
* (i.e., @FT_IS_VARIATION returns true). If `num_coords` is zero, this
|
||||
* bit flag gets unset.
|
||||
*
|
||||
* [Since 2.14] This function also sets the @FT_FACE_FLAG_VARIATION bit
|
||||
* in @FT_Face's `face_flags` field (i.e., @FT_IS_VARIATION returns
|
||||
* true) if any of the provided coordinates is different from the face's
|
||||
* default value for the corresponding axis, that is, the set up face is
|
||||
* not at its default position.
|
||||
*/
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Set_MM_Blend_Coordinates( FT_Face face,
|
||||
@ -539,8 +599,8 @@ FT_BEGIN_HEADER
|
||||
* FT_Get_MM_Blend_Coordinates
|
||||
*
|
||||
* @description:
|
||||
* Get the normalized blend coordinates of the currently selected
|
||||
* interpolated font.
|
||||
* Get the normalized coordinates of the currently selected interpolated
|
||||
* font.
|
||||
*
|
||||
* This function works with all supported variation formats.
|
||||
*
|
||||
@ -549,14 +609,14 @@ FT_BEGIN_HEADER
|
||||
* A handle to the source face.
|
||||
*
|
||||
* num_coords ::
|
||||
* The number of normalized blend coordinates to retrieve. If it is
|
||||
* larger than the number of axes, set the excess values to~0.5 for
|
||||
* Adobe MM fonts, and to~0 for TrueType GX and OpenType variation
|
||||
* fonts.
|
||||
* The number of normalized coordinates to retrieve. If it is larger
|
||||
* than the number of axes, set the excess values to~0.5 for Adobe MM
|
||||
* fonts, and to~0 for TrueType GX and OpenType Font Variations.
|
||||
*
|
||||
* @output:
|
||||
* coords ::
|
||||
* The normalized blend coordinates array (as 16.16 fractional values).
|
||||
* The normalized coordinates array (as 16.16 fractional values), which
|
||||
* must be allocated by the user.
|
||||
*
|
||||
* @return:
|
||||
* FreeType error code. 0~means success.
|
||||
@ -610,8 +670,8 @@ FT_BEGIN_HEADER
|
||||
* For Adobe MM fonts, choose an interpolated font design by directly
|
||||
* setting the weight vector.
|
||||
*
|
||||
* This function can't be used with TrueType GX or OpenType variation
|
||||
* fonts.
|
||||
* This function can't be used with TrueType GX or OpenType Font
|
||||
* Variations.
|
||||
*
|
||||
* @inout:
|
||||
* face ::
|
||||
@ -630,16 +690,16 @@ FT_BEGIN_HEADER
|
||||
* FreeType error code. 0~means success.
|
||||
*
|
||||
* @note:
|
||||
* Adobe Multiple Master fonts limit the number of designs, and thus the
|
||||
* length of the weight vector to 16~elements.
|
||||
* Adobe MM fonts limit the number of designs, and thus the length of the
|
||||
* weight vector, to 16~elements.
|
||||
*
|
||||
* If `len` is larger than zero, this function sets the
|
||||
* @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field (i.e.,
|
||||
* @FT_IS_VARIATION will return true). If `len` is zero, this bit flag
|
||||
* is unset and the weight vector array is reset to the default values.
|
||||
* @FT_IS_VARIATION returns true). If `len` is zero, this bit flag is
|
||||
* unset and the weight vector array is reset to the default values.
|
||||
*
|
||||
* The Adobe documentation also states that the values in the
|
||||
* WeightVector array must total 1.0 +/-~0.001. In practice this does
|
||||
* `WeightVector` array must total 1.0 +/-~0.001. In practice this does
|
||||
* not seem to be enforced, so is not enforced here, either.
|
||||
*
|
||||
* @since:
|
||||
@ -659,8 +719,8 @@ FT_BEGIN_HEADER
|
||||
* @description:
|
||||
* For Adobe MM fonts, retrieve the current weight vector of the font.
|
||||
*
|
||||
* This function can't be used with TrueType GX or OpenType variation
|
||||
* fonts.
|
||||
* This function can't be used with TrueType GX or OpenType Font
|
||||
* Variations.
|
||||
*
|
||||
* @inout:
|
||||
* face ::
|
||||
@ -677,14 +737,14 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* @output:
|
||||
* weightvector ::
|
||||
* An array to be filled.
|
||||
* An array to be filled; it must be allocated by the user.
|
||||
*
|
||||
* @return:
|
||||
* FreeType error code. 0~means success.
|
||||
*
|
||||
* @note:
|
||||
* Adobe Multiple Master fonts limit the number of designs, and thus the
|
||||
* length of the WeightVector to~16.
|
||||
* Adobe MM fonts limit the number of designs, and thus the length of the
|
||||
* weight vector, to~16 elements.
|
||||
*
|
||||
* @since:
|
||||
* 2.10
|
||||
@ -760,8 +820,8 @@ FT_BEGIN_HEADER
|
||||
* A handle to the source face.
|
||||
*
|
||||
* instance_index ::
|
||||
* The index of the requested instance, starting with value 1. If set
|
||||
* to value 0, FreeType switches to font access without a named
|
||||
* The index of the requested instance, starting with value~1. If set
|
||||
* to value~0, FreeType switches to font access without a named
|
||||
* instance.
|
||||
*
|
||||
* @return:
|
||||
@ -771,11 +831,11 @@ FT_BEGIN_HEADER
|
||||
* The function uses the value of `instance_index` to set bits 16-30 of
|
||||
* the face's `face_index` field. It also resets any variation applied
|
||||
* to the font, and the @FT_FACE_FLAG_VARIATION bit of the face's
|
||||
* `face_flags` field gets reset to zero (i.e., @FT_IS_VARIATION will
|
||||
* return false).
|
||||
* `face_flags` field gets reset to zero (i.e., @FT_IS_VARIATION returns
|
||||
* false).
|
||||
*
|
||||
* For Adobe MM fonts (which don't have named instances) this function
|
||||
* simply resets the current face to the default instance.
|
||||
* For Adobe MM fonts, this function resets the current face to the
|
||||
* default instance.
|
||||
*
|
||||
* @since:
|
||||
* 2.9
|
||||
@ -794,10 +854,6 @@ FT_BEGIN_HEADER
|
||||
* Retrieve the index of the default named instance, to be used with
|
||||
* @FT_Set_Named_Instance.
|
||||
*
|
||||
* The default instance of a variation font is that instance for which
|
||||
* the nth axis coordinate is equal to `axis[n].def` (as specified in the
|
||||
* @FT_MM_Var structure), with~n covering all axes.
|
||||
*
|
||||
* FreeType synthesizes a named instance for the default instance if the
|
||||
* font does not contain such an entry.
|
||||
*
|
||||
@ -813,8 +869,8 @@ FT_BEGIN_HEADER
|
||||
* FreeType error code. 0~means success.
|
||||
*
|
||||
* @note:
|
||||
* For Adobe MM fonts (which don't have named instances) this function
|
||||
* always returns zero for `instance_index`.
|
||||
* For Adobe MM fonts, this function always returns zero for
|
||||
* `instance_index`.
|
||||
*
|
||||
* @since:
|
||||
* 2.13.1
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType modules public interface (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType module error offsets (specification).
|
||||
*
|
||||
* Copyright (C) 2001-2024 by
|
||||
* Copyright (C) 2001-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType API for validating OpenType tables (specification).
|
||||
*
|
||||
* Copyright (C) 2004-2024 by
|
||||
* Copyright (C) 2004-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
* Support for the FT_Outline type used to store glyph shapes of
|
||||
* most scalable font formats (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType API for possible FT_Parameter tags (specification only).
|
||||
*
|
||||
* Copyright (C) 2017-2024 by
|
||||
* Copyright (C) 2017-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
2
thirdparty/freetype/include/freetype/ftpfr.h
vendored
2
thirdparty/freetype/include/freetype/ftpfr.h
vendored
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType API for accessing PFR-specific data (specification only).
|
||||
*
|
||||
* Copyright (C) 2002-2024 by
|
||||
* Copyright (C) 2002-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType renderer modules public interface (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType size objects management (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
*
|
||||
* This is _not_ used to retrieve glyph names!
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType path stroker (specification).
|
||||
*
|
||||
* Copyright (C) 2002-2024 by
|
||||
* Copyright (C) 2002-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
* FreeType synthesizing code for emboldening and slanting
|
||||
* (specification).
|
||||
*
|
||||
* Copyright (C) 2000-2024 by
|
||||
* Copyright (C) 2000-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType low-level system interface definition (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType trigonometric functions (specification).
|
||||
*
|
||||
* Copyright (C) 2001-2024 by
|
||||
* Copyright (C) 2001-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType simple types definitions (specification only).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType API for accessing Windows fnt-specific data.
|
||||
*
|
||||
* Copyright (C) 2003-2024 by
|
||||
* Copyright (C) 2003-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -93,8 +93,7 @@ FT_BEGIN_HEADER
|
||||
* second default codepage that most international versions of Windows
|
||||
* have. It is one of the OEM codepages from
|
||||
*
|
||||
* https://docs.microsoft.com/en-us/windows/desktop/intl/code-page-identifiers
|
||||
* ,
|
||||
* https://learn.microsoft.com/windows/win32/intl/code-page-identifiers ,
|
||||
*
|
||||
* and is used for the 'DOS boxes', to support legacy applications. A
|
||||
* German Windows version for example usually uses ANSI codepage 1252
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* High-level 'autohint' module-specific interface (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Basic OpenType/CFF object type definitions (specification).
|
||||
*
|
||||
* Copyright (C) 2017-2024 by
|
||||
* Copyright (C) 2017-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
* Basic OpenType/CFF type definitions and interface (specification
|
||||
* only).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Compiler-specific macro definitions used internally by FreeType.
|
||||
*
|
||||
* Copyright (C) 2020-2024 by
|
||||
* Copyright (C) 2020-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -128,8 +128,8 @@ FT_BEGIN_HEADER
|
||||
* before a function declaration.
|
||||
*/
|
||||
|
||||
/* Visual C, mingw */
|
||||
#if defined( _WIN32 )
|
||||
/* Visual C, MinGW, Cygwin */
|
||||
#if defined( _WIN32 ) || defined( __CYGWIN__ )
|
||||
#define FT_INTERNAL_FUNCTION_ATTRIBUTE /* empty */
|
||||
|
||||
/* gcc, clang */
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Arithmetic computations (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -27,17 +27,87 @@
|
||||
FT_BEGIN_HEADER
|
||||
|
||||
|
||||
/*
|
||||
* The following macros have two purposes.
|
||||
*
|
||||
* - Tag places where overflow is expected and harmless.
|
||||
*
|
||||
* - Avoid run-time undefined behavior sanitizer errors.
|
||||
*
|
||||
* Use with care!
|
||||
*/
|
||||
#define ADD_INT( a, b ) \
|
||||
(FT_Int)( (FT_UInt)(a) + (FT_UInt)(b) )
|
||||
#define SUB_INT( a, b ) \
|
||||
(FT_Int)( (FT_UInt)(a) - (FT_UInt)(b) )
|
||||
#define MUL_INT( a, b ) \
|
||||
(FT_Int)( (FT_UInt)(a) * (FT_UInt)(b) )
|
||||
#define NEG_INT( a ) \
|
||||
(FT_Int)( (FT_UInt)0 - (FT_UInt)(a) )
|
||||
|
||||
#define ADD_LONG( a, b ) \
|
||||
(FT_Long)( (FT_ULong)(a) + (FT_ULong)(b) )
|
||||
#define SUB_LONG( a, b ) \
|
||||
(FT_Long)( (FT_ULong)(a) - (FT_ULong)(b) )
|
||||
#define MUL_LONG( a, b ) \
|
||||
(FT_Long)( (FT_ULong)(a) * (FT_ULong)(b) )
|
||||
#define NEG_LONG( a ) \
|
||||
(FT_Long)( (FT_ULong)0 - (FT_ULong)(a) )
|
||||
|
||||
#define ADD_INT32( a, b ) \
|
||||
(FT_Int32)( (FT_UInt32)(a) + (FT_UInt32)(b) )
|
||||
#define SUB_INT32( a, b ) \
|
||||
(FT_Int32)( (FT_UInt32)(a) - (FT_UInt32)(b) )
|
||||
#define MUL_INT32( a, b ) \
|
||||
(FT_Int32)( (FT_UInt32)(a) * (FT_UInt32)(b) )
|
||||
#define NEG_INT32( a ) \
|
||||
(FT_Int32)( (FT_UInt32)0 - (FT_UInt32)(a) )
|
||||
|
||||
#ifdef FT_INT64
|
||||
|
||||
#define ADD_INT64( a, b ) \
|
||||
(FT_Int64)( (FT_UInt64)(a) + (FT_UInt64)(b) )
|
||||
#define SUB_INT64( a, b ) \
|
||||
(FT_Int64)( (FT_UInt64)(a) - (FT_UInt64)(b) )
|
||||
#define MUL_INT64( a, b ) \
|
||||
(FT_Int64)( (FT_UInt64)(a) * (FT_UInt64)(b) )
|
||||
#define NEG_INT64( a ) \
|
||||
(FT_Int64)( (FT_UInt64)0 - (FT_UInt64)(a) )
|
||||
|
||||
#endif /* FT_INT64 */
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* FT_MulDiv() and FT_MulFix() are declared in freetype.h.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef FT_CONFIG_OPTION_NO_ASSEMBLER
|
||||
/* Provide assembler fragments for performance-critical functions. */
|
||||
/* These must be defined `static __inline__' with GCC. */
|
||||
#ifdef FT_CONFIG_OPTION_INLINE_MULFIX
|
||||
|
||||
#if defined( __CC_ARM ) || defined( __ARMCC__ ) /* RVCT */
|
||||
#ifdef FT_INT64
|
||||
|
||||
static inline FT_Long
|
||||
FT_MulFix_64( FT_Long a,
|
||||
FT_Long b )
|
||||
{
|
||||
FT_Int64 ab = MUL_INT64( a, b );
|
||||
|
||||
|
||||
ab = ADD_INT64( ab, 0x8000 + ( ab >> 63 ) ); /* rounding phase */
|
||||
|
||||
return (FT_Long)( ab >> 16 );
|
||||
}
|
||||
|
||||
|
||||
#define FT_MulFix( a, b ) FT_MulFix_64( a, b )
|
||||
|
||||
#elif !defined( FT_CONFIG_OPTION_NO_ASSEMBLER )
|
||||
/* Provide 32-bit assembler fragments for optimized FT_MulFix. */
|
||||
/* These must be defined `static __inline__' or similar. */
|
||||
|
||||
#if defined( __arm__ ) && \
|
||||
( defined( __thumb2__ ) || !defined( __thumb__ ) )
|
||||
|
||||
#define FT_MULFIX_ASSEMBLER FT_MulFix_arm
|
||||
|
||||
@ -49,6 +119,7 @@ FT_BEGIN_HEADER
|
||||
{
|
||||
FT_Int32 t, t2;
|
||||
|
||||
#if defined( __CC_ARM ) || defined( __ARMCC__ ) /* RVCT */
|
||||
|
||||
__asm
|
||||
{
|
||||
@ -60,28 +131,8 @@ FT_BEGIN_HEADER
|
||||
mov a, t2, lsr #16 /* a = t2 >> 16 */
|
||||
orr a, a, t, lsl #16 /* a |= t << 16 */
|
||||
}
|
||||
return a;
|
||||
}
|
||||
|
||||
#endif /* __CC_ARM || __ARMCC__ */
|
||||
|
||||
|
||||
#ifdef __GNUC__
|
||||
|
||||
#if defined( __arm__ ) && \
|
||||
( !defined( __thumb__ ) || defined( __thumb2__ ) ) && \
|
||||
!( defined( __CC_ARM ) || defined( __ARMCC__ ) )
|
||||
|
||||
#define FT_MULFIX_ASSEMBLER FT_MulFix_arm
|
||||
|
||||
/* documentation is in freetype.h */
|
||||
|
||||
static __inline__ FT_Int32
|
||||
FT_MulFix_arm( FT_Int32 a,
|
||||
FT_Int32 b )
|
||||
{
|
||||
FT_Int32 t, t2;
|
||||
|
||||
#elif defined( __GNUC__ )
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"smull %1, %2, %4, %3\n\t" /* (lo=%1,hi=%2) = a*b */
|
||||
@ -98,26 +149,25 @@ FT_BEGIN_HEADER
|
||||
: "=r"(a), "=&r"(t2), "=&r"(t)
|
||||
: "r"(a), "r"(b)
|
||||
: "cc" );
|
||||
|
||||
#endif
|
||||
|
||||
return a;
|
||||
}
|
||||
|
||||
#endif /* __arm__ && */
|
||||
/* ( __thumb2__ || !__thumb__ ) && */
|
||||
/* !( __CC_ARM || __ARMCC__ ) */
|
||||
|
||||
|
||||
#if defined( __i386__ )
|
||||
#elif defined( __i386__ ) || defined( _M_IX86 )
|
||||
|
||||
#define FT_MULFIX_ASSEMBLER FT_MulFix_i386
|
||||
|
||||
/* documentation is in freetype.h */
|
||||
|
||||
static __inline__ FT_Int32
|
||||
static __inline FT_Int32
|
||||
FT_MulFix_i386( FT_Int32 a,
|
||||
FT_Int32 b )
|
||||
{
|
||||
FT_Int32 result;
|
||||
|
||||
#if defined( __GNUC__ )
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"imul %%edx\n"
|
||||
@ -132,27 +182,8 @@ FT_BEGIN_HEADER
|
||||
: "=a"(result), "=d"(b)
|
||||
: "a"(a), "d"(b)
|
||||
: "%ecx", "cc" );
|
||||
return result;
|
||||
}
|
||||
|
||||
#endif /* i386 */
|
||||
|
||||
#endif /* __GNUC__ */
|
||||
|
||||
|
||||
#ifdef _MSC_VER /* Visual C++ */
|
||||
|
||||
#ifdef _M_IX86
|
||||
|
||||
#define FT_MULFIX_ASSEMBLER FT_MulFix_i386
|
||||
|
||||
/* documentation is in freetype.h */
|
||||
|
||||
static __inline FT_Int32
|
||||
FT_MulFix_i386( FT_Int32 a,
|
||||
FT_Int32 b )
|
||||
{
|
||||
FT_Int32 result;
|
||||
#elif defined( _MSC_VER )
|
||||
|
||||
__asm
|
||||
{
|
||||
@ -169,81 +200,21 @@ FT_BEGIN_HEADER
|
||||
add eax, edx
|
||||
mov result, eax
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#endif /* _M_IX86 */
|
||||
#endif /* __i386__ || _M_IX86 */
|
||||
|
||||
#endif /* _MSC_VER */
|
||||
|
||||
|
||||
#if defined( __GNUC__ ) && defined( __x86_64__ )
|
||||
|
||||
#define FT_MULFIX_ASSEMBLER FT_MulFix_x86_64
|
||||
|
||||
static __inline__ FT_Int32
|
||||
FT_MulFix_x86_64( FT_Int32 a,
|
||||
FT_Int32 b )
|
||||
{
|
||||
/* Temporarily disable the warning that C90 doesn't support */
|
||||
/* `long long'. */
|
||||
#if __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 6 )
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wlong-long"
|
||||
#endif
|
||||
|
||||
#if 1
|
||||
/* Technically not an assembly fragment, but GCC does a really good */
|
||||
/* job at inlining it and generating good machine code for it. */
|
||||
long long ret, tmp;
|
||||
|
||||
|
||||
ret = (long long)a * b;
|
||||
tmp = ret >> 63;
|
||||
ret += 0x8000 + tmp;
|
||||
|
||||
return (FT_Int32)( ret >> 16 );
|
||||
#else
|
||||
|
||||
/* For some reason, GCC 4.6 on Ubuntu 12.04 generates invalid machine */
|
||||
/* code from the lines below. The main issue is that `wide_a' is not */
|
||||
/* properly initialized by sign-extending `a'. Instead, the generated */
|
||||
/* machine code assumes that the register that contains `a' on input */
|
||||
/* can be used directly as a 64-bit value, which is wrong most of the */
|
||||
/* time. */
|
||||
long long wide_a = (long long)a;
|
||||
long long wide_b = (long long)b;
|
||||
long long result;
|
||||
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"imul %2, %1\n"
|
||||
"mov %1, %0\n"
|
||||
"sar $63, %0\n"
|
||||
"lea 0x8000(%1, %0), %0\n"
|
||||
"sar $16, %0\n"
|
||||
: "=&r"(result), "=&r"(wide_a)
|
||||
: "r"(wide_b)
|
||||
: "cc" );
|
||||
|
||||
return (FT_Int32)result;
|
||||
#endif
|
||||
|
||||
#if __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 6 )
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* __GNUC__ && __x86_64__ */
|
||||
|
||||
#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */
|
||||
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_INLINE_MULFIX
|
||||
#ifdef FT_MULFIX_ASSEMBLER
|
||||
#define FT_MulFix( a, b ) FT_MULFIX_ASSEMBLER( (FT_Int32)(a), (FT_Int32)(b) )
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */
|
||||
|
||||
#endif /* FT_CONFIG_OPTION_INLINE_MULFIX */
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
@ -278,40 +249,6 @@ FT_BEGIN_HEADER
|
||||
FT_Long c );
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* @function:
|
||||
* FT_MulAddFix
|
||||
*
|
||||
* @description:
|
||||
* Compute `(s[0] * f[0] + s[1] * f[1] + ...) / 0x10000`, where `s[n]` is
|
||||
* usually a 16.16 scalar.
|
||||
*
|
||||
* @input:
|
||||
* s ::
|
||||
* The array of scalars.
|
||||
* f ::
|
||||
* The array of factors.
|
||||
* count ::
|
||||
* The number of entries in the array.
|
||||
*
|
||||
* @return:
|
||||
* The result of `(s[0] * f[0] + s[1] * f[1] + ...) / 0x10000`.
|
||||
*
|
||||
* @note:
|
||||
* This function is currently used for the scaled delta computation of
|
||||
* variation stores. It internally uses 64-bit data types when
|
||||
* available, otherwise it emulates 64-bit math by using 32-bit
|
||||
* operations, which produce a correct result but most likely at a slower
|
||||
* performance in comparison to the implementation base on `int64_t`.
|
||||
*
|
||||
*/
|
||||
FT_BASE( FT_Int32 )
|
||||
FT_MulAddFix( FT_Fixed* s,
|
||||
FT_Int32* f,
|
||||
FT_UInt count );
|
||||
|
||||
|
||||
/*
|
||||
* A variant of FT_Matrix_Multiply which scales its result afterwards. The
|
||||
* idea is that both `a' and `b' are scaled by factors of 10 so that the
|
||||
@ -455,6 +392,10 @@ FT_BEGIN_HEADER
|
||||
|
||||
#define FT_MSB( x ) FT_MSB_i386( x )
|
||||
|
||||
#elif defined( __CC_ARM )
|
||||
|
||||
#define FT_MSB( x ) ( 31 - __clz( x ) )
|
||||
|
||||
#elif defined( __SunOS_5_11 )
|
||||
|
||||
#include <string.h>
|
||||
@ -526,55 +467,6 @@ FT_BEGIN_HEADER
|
||||
|
||||
#define ROUND_F26DOT6( x ) ( ( (x) + 32 - ( x < 0 ) ) & -64 )
|
||||
|
||||
/*
|
||||
* The following macros have two purposes.
|
||||
*
|
||||
* - Tag places where overflow is expected and harmless.
|
||||
*
|
||||
* - Avoid run-time sanitizer errors.
|
||||
*
|
||||
* Use with care!
|
||||
*/
|
||||
#define ADD_INT( a, b ) \
|
||||
(FT_Int)( (FT_UInt)(a) + (FT_UInt)(b) )
|
||||
#define SUB_INT( a, b ) \
|
||||
(FT_Int)( (FT_UInt)(a) - (FT_UInt)(b) )
|
||||
#define MUL_INT( a, b ) \
|
||||
(FT_Int)( (FT_UInt)(a) * (FT_UInt)(b) )
|
||||
#define NEG_INT( a ) \
|
||||
(FT_Int)( (FT_UInt)0 - (FT_UInt)(a) )
|
||||
|
||||
#define ADD_LONG( a, b ) \
|
||||
(FT_Long)( (FT_ULong)(a) + (FT_ULong)(b) )
|
||||
#define SUB_LONG( a, b ) \
|
||||
(FT_Long)( (FT_ULong)(a) - (FT_ULong)(b) )
|
||||
#define MUL_LONG( a, b ) \
|
||||
(FT_Long)( (FT_ULong)(a) * (FT_ULong)(b) )
|
||||
#define NEG_LONG( a ) \
|
||||
(FT_Long)( (FT_ULong)0 - (FT_ULong)(a) )
|
||||
|
||||
#define ADD_INT32( a, b ) \
|
||||
(FT_Int32)( (FT_UInt32)(a) + (FT_UInt32)(b) )
|
||||
#define SUB_INT32( a, b ) \
|
||||
(FT_Int32)( (FT_UInt32)(a) - (FT_UInt32)(b) )
|
||||
#define MUL_INT32( a, b ) \
|
||||
(FT_Int32)( (FT_UInt32)(a) * (FT_UInt32)(b) )
|
||||
#define NEG_INT32( a ) \
|
||||
(FT_Int32)( (FT_UInt32)0 - (FT_UInt32)(a) )
|
||||
|
||||
#ifdef FT_INT64
|
||||
|
||||
#define ADD_INT64( a, b ) \
|
||||
(FT_Int64)( (FT_UInt64)(a) + (FT_UInt64)(b) )
|
||||
#define SUB_INT64( a, b ) \
|
||||
(FT_Int64)( (FT_UInt64)(a) - (FT_UInt64)(b) )
|
||||
#define MUL_INT64( a, b ) \
|
||||
(FT_Int64)( (FT_UInt64)(a) * (FT_UInt64)(b) )
|
||||
#define NEG_INT64( a ) \
|
||||
(FT_Int64)( (FT_UInt64)0 - (FT_UInt64)(a) )
|
||||
|
||||
#endif /* FT_INT64 */
|
||||
|
||||
|
||||
FT_END_HEADER
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Debugging and logging component (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType internal font driver interface (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType glyph loader (specification).
|
||||
*
|
||||
* Copyright (C) 2002-2024 by
|
||||
* Copyright (C) 2002-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -117,6 +117,18 @@ FT_BEGIN_HEADER
|
||||
FT_Hash hash,
|
||||
FT_Memory memory );
|
||||
|
||||
FT_Error
|
||||
ft_hash_str_insert_no_overwrite( const char* key,
|
||||
size_t data,
|
||||
FT_Hash hash,
|
||||
FT_Memory memory );
|
||||
|
||||
FT_Error
|
||||
ft_hash_num_insert_no_overwrite( FT_Int num,
|
||||
size_t data,
|
||||
FT_Hash hash,
|
||||
FT_Memory memory );
|
||||
|
||||
size_t*
|
||||
ft_hash_str_lookup( const char* key,
|
||||
FT_Hash hash );
|
||||
@ -125,6 +137,17 @@ FT_BEGIN_HEADER
|
||||
ft_hash_num_lookup( FT_Int num,
|
||||
FT_Hash hash );
|
||||
|
||||
FT_Bool
|
||||
ft_hash_num_iterator( FT_UInt *idx,
|
||||
FT_Int *key,
|
||||
size_t *value,
|
||||
FT_Hash hash );
|
||||
|
||||
FT_Bool
|
||||
ft_hash_str_iterator( FT_UInt *idx,
|
||||
const char* *key,
|
||||
size_t *value,
|
||||
FT_Hash hash );
|
||||
|
||||
FT_END_HEADER
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType memory management macros (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
* OpenType Variations type definitions for internal use
|
||||
* with the multi-masters service (specification).
|
||||
*
|
||||
* Copyright (C) 2022-2024 by
|
||||
* Copyright (C) 2022-2025 by
|
||||
* David Turner, Robert Wilhelm, Werner Lemberg, George Williams, and
|
||||
* Dominik Röttsches.
|
||||
*
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType private base classes (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -275,6 +275,28 @@ FT_BEGIN_HEADER
|
||||
FT_GlyphSlot slot,
|
||||
FT_Render_Mode mode );
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* @Function:
|
||||
* find_unicode_charmap
|
||||
*
|
||||
* @Description:
|
||||
* This function finds a Unicode charmap, if there is one. And if there
|
||||
* is more than one, it tries to favour the more extensive one, i.e., one
|
||||
* that supports UCS-4 against those which are limited to the BMP (UCS-2
|
||||
* encoding.)
|
||||
*
|
||||
* If a unicode charmap is found, `face->charmap` is set to it.
|
||||
*
|
||||
* This function is called from `open_face`, from `FT_Select_Charmap(...,
|
||||
* FT_ENCODING_UNICODE)`, and also from `afadjust.c` in the 'autofit'
|
||||
* module.
|
||||
*/
|
||||
FT_BASE( FT_Error )
|
||||
find_unicode_charmap( FT_Face face );
|
||||
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_SUBPIXEL_RENDERING
|
||||
|
||||
typedef void (*FT_Bitmap_LcdFilterFunc)( FT_Bitmap* bitmap,
|
||||
@ -498,9 +520,9 @@ FT_BEGIN_HEADER
|
||||
*/
|
||||
typedef struct FT_ModuleRec_
|
||||
{
|
||||
FT_Module_Class* clazz;
|
||||
FT_Library library;
|
||||
FT_Memory memory;
|
||||
const FT_Module_Class* clazz;
|
||||
FT_Library library;
|
||||
FT_Memory memory;
|
||||
|
||||
} FT_ModuleRec;
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Get and set properties of PostScript drivers (specification).
|
||||
*
|
||||
* Copyright (C) 2017-2024 by
|
||||
* Copyright (C) 2017-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Embedded resource forks accessor (specification).
|
||||
*
|
||||
* Copyright (C) 2004-2024 by
|
||||
* Copyright (C) 2004-2025 by
|
||||
* Masatake YAMATO and Redhat K.K.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType services (specification only).
|
||||
*
|
||||
* Copyright (C) 2003-2024 by
|
||||
* Copyright (C) 2003-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Stream handling (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Tracing handling (specification only).
|
||||
*
|
||||
* Copyright (C) 2002-2024 by
|
||||
* Copyright (C) 2002-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -19,7 +19,7 @@
|
||||
/* definitions of trace levels for FreeType 2 */
|
||||
|
||||
/* the maximum string length (if the argument to `FT_TRACE_DEF` */
|
||||
/* gets used as a string) plus one charachter for ':' plus */
|
||||
/* gets used as a string) plus one character for ':' plus */
|
||||
/* another one for the trace level */
|
||||
#define FT_MAX_TRACE_LEVEL_LENGTH (9 + 1 + 1)
|
||||
|
||||
@ -159,6 +159,7 @@ FT_TRACE_DEF( gxvprop )
|
||||
FT_TRACE_DEF( gxvtrak )
|
||||
|
||||
/* autofit components */
|
||||
FT_TRACE_DEF( afadjust )
|
||||
FT_TRACE_DEF( afcjk )
|
||||
FT_TRACE_DEF( afglobal )
|
||||
FT_TRACE_DEF( afhints )
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType validation support (specification).
|
||||
*
|
||||
* Copyright (C) 2004-2024 by
|
||||
* Copyright (C) 2004-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
* Auxiliary functions and data structures related to PostScript fonts
|
||||
* (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
* recorders (specification only). These are used to support native
|
||||
* T1/T2 hints in the 'type1', 'cid', and 'cff' font drivers.
|
||||
*
|
||||
* Copyright (C) 2001-2024 by
|
||||
* Copyright (C) 2001-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType BDF services (specification).
|
||||
*
|
||||
* Copyright (C) 2003-2024 by
|
||||
* Copyright (C) 2003-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType CFF tables loader service (specification).
|
||||
*
|
||||
* Copyright (C) 2017-2024 by
|
||||
* Copyright (C) 2017-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType CID font services (specification).
|
||||
*
|
||||
* Copyright (C) 2007-2024 by
|
||||
* Copyright (C) 2007-2025 by
|
||||
* Derek Clegg and Michael Toftdal.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType font format service (specification only).
|
||||
*
|
||||
* Copyright (C) 2003-2024 by
|
||||
* Copyright (C) 2003-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType glyph dictionary services (specification).
|
||||
*
|
||||
* Copyright (C) 2003-2024 by
|
||||
* Copyright (C) 2003-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType API for validating TrueTypeGX/AAT tables (specification).
|
||||
*
|
||||
* Copyright (C) 2004-2024 by
|
||||
* Copyright (C) 2004-2025 by
|
||||
* Masatake YAMATO, Red Hat K.K.,
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType Kerning service (specification).
|
||||
*
|
||||
* Copyright (C) 2006-2024 by
|
||||
* Copyright (C) 2006-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType services for metrics variations (specification).
|
||||
*
|
||||
* Copyright (C) 2016-2024 by
|
||||
* Copyright (C) 2016-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -77,7 +77,7 @@ FT_BEGIN_HEADER
|
||||
typedef void
|
||||
(*FT_Metrics_Adjust_Func)( FT_Face face );
|
||||
|
||||
typedef FT_Error
|
||||
typedef void
|
||||
(*FT_Size_Reset_Func)( FT_Size size );
|
||||
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType Multiple Masters and GX var services (specification).
|
||||
*
|
||||
* Copyright (C) 2003-2024 by
|
||||
* Copyright (C) 2003-2025 by
|
||||
* David Turner, Robert Wilhelm, Werner Lemberg, and Dominik Röttsches.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType OpenType validation service (specification).
|
||||
*
|
||||
* Copyright (C) 2004-2024 by
|
||||
* Copyright (C) 2004-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Internal PFR service functions (specification).
|
||||
*
|
||||
* Copyright (C) 2003-2024 by
|
||||
* Copyright (C) 2003-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType PostScript name services (specification).
|
||||
*
|
||||
* Copyright (C) 2003-2024 by
|
||||
* Copyright (C) 2003-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType property service (specification).
|
||||
*
|
||||
* Copyright (C) 2012-2024 by
|
||||
* Copyright (C) 2012-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType PostScript charmap service (specification).
|
||||
*
|
||||
* Copyright (C) 2003-2024 by
|
||||
* Copyright (C) 2003-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType PostScript info service (specification).
|
||||
*
|
||||
* Copyright (C) 2003-2024 by
|
||||
* Copyright (C) 2003-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType SFNT table loading service (specification).
|
||||
*
|
||||
* Copyright (C) 2003-2024 by
|
||||
* Copyright (C) 2003-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType TrueType/sfnt cmap extra information service.
|
||||
*
|
||||
* Copyright (C) 2003-2024 by
|
||||
* Copyright (C) 2003-2025 by
|
||||
* Masatake YAMATO, Redhat K.K.,
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType TrueType engine query service (specification).
|
||||
*
|
||||
* Copyright (C) 2006-2024 by
|
||||
* Copyright (C) 2006-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType TrueType glyph service.
|
||||
*
|
||||
* Copyright (C) 2007-2024 by
|
||||
* Copyright (C) 2007-2025 by
|
||||
* David Turner.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* The FreeType Windows FNT/FONT service (specification).
|
||||
*
|
||||
* Copyright (C) 2003-2024 by
|
||||
* Copyright (C) 2003-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* High-level 'sfnt' driver interface (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -612,7 +612,7 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* @return:
|
||||
* Value~1 if a ClipBox is found. If no clip box is found or an
|
||||
* error occured, value~0 is returned.
|
||||
* error occurred, value~0 is returned.
|
||||
*/
|
||||
typedef FT_Bool
|
||||
( *TT_Get_Color_Glyph_ClipBox_Func )( TT_Face face,
|
||||
@ -707,7 +707,7 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* @return:
|
||||
* Value~1 if everything is OK. Value~0 if no details can be found for
|
||||
* this paint or any other error occured.
|
||||
* this paint or any other error occurred.
|
||||
*/
|
||||
typedef FT_Bool
|
||||
( *TT_Get_Paint_Func )( TT_Face face,
|
||||
@ -808,7 +808,7 @@ FT_BEGIN_HEADER
|
||||
* corresponding (1,0) Apple entry.
|
||||
*
|
||||
* @return:
|
||||
* 1 if there is either a win or apple entry (or both), 0 otheriwse.
|
||||
* 1 if there is either a win or apple entry (or both), 0 otherwise.
|
||||
*/
|
||||
typedef FT_Bool
|
||||
(*TT_Get_Name_ID_Func)( TT_Face face,
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Interface of ot-svg module (specification only).
|
||||
*
|
||||
* Copyright (C) 2022-2024 by
|
||||
* Copyright (C) 2022-2025 by
|
||||
* David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
* Basic Type1/Type2 type definitions and interface (specification
|
||||
* only).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
* Basic SFNT/TrueType type definitions and interface (specification
|
||||
* only).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -930,8 +930,8 @@ FT_BEGIN_HEADER
|
||||
* resolution and scaling independent parts of a TrueType font resource.
|
||||
*
|
||||
* @note:
|
||||
* The TT_Face structure is also used as a 'parent class' for the
|
||||
* OpenType-CFF class (T2_Face).
|
||||
* The TT_Face structure is also used for CFF support; see file
|
||||
* `cffotypes.h`.
|
||||
*/
|
||||
typedef struct TT_FaceRec_* TT_Face;
|
||||
|
||||
@ -1276,10 +1276,6 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* If varied by the `CVAR' table, non-integer values are possible.
|
||||
*
|
||||
* interpreter ::
|
||||
* A pointer to the TrueType bytecode interpreters field is also used
|
||||
* to hook the debugger in 'ttdebug'.
|
||||
*
|
||||
* extra ::
|
||||
* Reserved for third-party font drivers.
|
||||
*
|
||||
@ -1521,10 +1517,6 @@ FT_BEGIN_HEADER
|
||||
FT_ULong cvt_size;
|
||||
FT_Int32* cvt;
|
||||
|
||||
/* A pointer to the bytecode interpreter to use. This is also */
|
||||
/* used to hook the debugger for the `ttdebug' utility. */
|
||||
TT_Interpreter interpreter;
|
||||
|
||||
|
||||
/************************************************************************
|
||||
*
|
||||
@ -1582,11 +1574,6 @@ FT_BEGIN_HEADER
|
||||
FT_UInt32 kern_avail_bits;
|
||||
FT_UInt32 kern_order_bits;
|
||||
|
||||
#ifdef TT_CONFIG_OPTION_GPOS_KERNING
|
||||
FT_Byte* gpos_table;
|
||||
FT_Bool gpos_kerning_available;
|
||||
#endif
|
||||
|
||||
#ifdef TT_CONFIG_OPTION_BDF
|
||||
TT_BDFRec bdf;
|
||||
#endif /* TT_CONFIG_OPTION_BDF */
|
||||
@ -1608,6 +1595,15 @@ FT_BEGIN_HEADER
|
||||
/* since 2.12 */
|
||||
void* svg;
|
||||
|
||||
#ifdef TT_CONFIG_OPTION_GPOS_KERNING
|
||||
/* since 2.13.3 */
|
||||
FT_Byte* gpos_table;
|
||||
/* since 2.14 */
|
||||
/* This is actually an array of GPOS lookup subtables. */
|
||||
FT_UInt32* gpos_lookups_kerning;
|
||||
FT_UInt num_gpos_lookups_kerning;
|
||||
#endif
|
||||
|
||||
} TT_FaceRec;
|
||||
|
||||
|
||||
@ -1621,15 +1617,6 @@ FT_BEGIN_HEADER
|
||||
* coordinates.
|
||||
*
|
||||
* @fields:
|
||||
* memory ::
|
||||
* A handle to the memory manager.
|
||||
*
|
||||
* max_points ::
|
||||
* The maximum size in points of the zone.
|
||||
*
|
||||
* max_contours ::
|
||||
* Max size in links contours of the zone.
|
||||
*
|
||||
* n_points ::
|
||||
* The current number of points in the zone.
|
||||
*
|
||||
@ -1653,9 +1640,6 @@ FT_BEGIN_HEADER
|
||||
*/
|
||||
typedef struct TT_GlyphZoneRec_
|
||||
{
|
||||
FT_Memory memory;
|
||||
FT_UShort max_points;
|
||||
FT_UShort max_contours;
|
||||
FT_UShort n_points; /* number of points in zone */
|
||||
FT_UShort n_contours; /* number of contours */
|
||||
|
||||
@ -1714,7 +1698,6 @@ FT_BEGIN_HEADER
|
||||
TT_GlyphZoneRec zone;
|
||||
|
||||
TT_ExecContext exec;
|
||||
FT_Byte* instructions;
|
||||
FT_ULong ins_pos;
|
||||
|
||||
/* for possible extensibility in other formats */
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
* Basic WOFF/WOFF2 type definitions and interface (specification
|
||||
* only).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
2
thirdparty/freetype/include/freetype/otsvg.h
vendored
2
thirdparty/freetype/include/freetype/otsvg.h
vendored
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Interface for OT-SVG support related things (specification).
|
||||
*
|
||||
* Copyright (C) 2022-2024 by
|
||||
* Copyright (C) 2022-2025 by
|
||||
* David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
* Basic Type 1/Type 2 tables definitions and interface (specification
|
||||
* only).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
258
thirdparty/freetype/include/freetype/ttnameid.h
vendored
258
thirdparty/freetype/include/freetype/ttnameid.h
vendored
@ -4,7 +4,7 @@
|
||||
*
|
||||
* TrueType name ID definitions (specification only).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -436,7 +436,7 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* The canonical source for Microsoft's IDs is
|
||||
*
|
||||
* https://docs.microsoft.com/en-us/windows/desktop/Intl/language-identifier-constants-and-strings ,
|
||||
* https://learn.microsoft.com/windows/win32/intl/language-identifier-constants-and-strings ,
|
||||
*
|
||||
* however, we only provide macros for language identifiers present in
|
||||
* the OpenType specification: Microsoft has abandoned the concept of
|
||||
@ -847,113 +847,113 @@ FT_BEGIN_HEADER
|
||||
/* --------------- */
|
||||
|
||||
/* Bit 0 Basic Latin */
|
||||
#define TT_UCR_BASIC_LATIN (1L << 0) /* U+0020-U+007E */
|
||||
#define TT_UCR_BASIC_LATIN (1UL << 0) /* U+0020-U+007E */
|
||||
/* Bit 1 C1 Controls and Latin-1 Supplement */
|
||||
#define TT_UCR_LATIN1_SUPPLEMENT (1L << 1) /* U+0080-U+00FF */
|
||||
#define TT_UCR_LATIN1_SUPPLEMENT (1UL << 1) /* U+0080-U+00FF */
|
||||
/* Bit 2 Latin Extended-A */
|
||||
#define TT_UCR_LATIN_EXTENDED_A (1L << 2) /* U+0100-U+017F */
|
||||
#define TT_UCR_LATIN_EXTENDED_A (1UL << 2) /* U+0100-U+017F */
|
||||
/* Bit 3 Latin Extended-B */
|
||||
#define TT_UCR_LATIN_EXTENDED_B (1L << 3) /* U+0180-U+024F */
|
||||
#define TT_UCR_LATIN_EXTENDED_B (1UL << 3) /* U+0180-U+024F */
|
||||
/* Bit 4 IPA Extensions */
|
||||
/* Phonetic Extensions */
|
||||
/* Phonetic Extensions Supplement */
|
||||
#define TT_UCR_IPA_EXTENSIONS (1L << 4) /* U+0250-U+02AF */
|
||||
#define TT_UCR_IPA_EXTENSIONS (1UL << 4) /* U+0250-U+02AF */
|
||||
/* U+1D00-U+1D7F */
|
||||
/* U+1D80-U+1DBF */
|
||||
/* Bit 5 Spacing Modifier Letters */
|
||||
/* Modifier Tone Letters */
|
||||
#define TT_UCR_SPACING_MODIFIER (1L << 5) /* U+02B0-U+02FF */
|
||||
#define TT_UCR_SPACING_MODIFIER (1UL << 5) /* U+02B0-U+02FF */
|
||||
/* U+A700-U+A71F */
|
||||
/* Bit 6 Combining Diacritical Marks */
|
||||
/* Combining Diacritical Marks Supplement */
|
||||
#define TT_UCR_COMBINING_DIACRITICAL_MARKS (1L << 6) /* U+0300-U+036F */
|
||||
#define TT_UCR_COMBINING_DIACRITICAL_MARKS (1UL << 6) /* U+0300-U+036F */
|
||||
/* U+1DC0-U+1DFF */
|
||||
/* Bit 7 Greek and Coptic */
|
||||
#define TT_UCR_GREEK (1L << 7) /* U+0370-U+03FF */
|
||||
#define TT_UCR_GREEK (1UL << 7) /* U+0370-U+03FF */
|
||||
/* Bit 8 Coptic */
|
||||
#define TT_UCR_COPTIC (1L << 8) /* U+2C80-U+2CFF */
|
||||
#define TT_UCR_COPTIC (1UL << 8) /* U+2C80-U+2CFF */
|
||||
/* Bit 9 Cyrillic */
|
||||
/* Cyrillic Supplement */
|
||||
/* Cyrillic Extended-A */
|
||||
/* Cyrillic Extended-B */
|
||||
#define TT_UCR_CYRILLIC (1L << 9) /* U+0400-U+04FF */
|
||||
#define TT_UCR_CYRILLIC (1UL << 9) /* U+0400-U+04FF */
|
||||
/* U+0500-U+052F */
|
||||
/* U+2DE0-U+2DFF */
|
||||
/* U+A640-U+A69F */
|
||||
/* Bit 10 Armenian */
|
||||
#define TT_UCR_ARMENIAN (1L << 10) /* U+0530-U+058F */
|
||||
#define TT_UCR_ARMENIAN (1UL << 10) /* U+0530-U+058F */
|
||||
/* Bit 11 Hebrew */
|
||||
#define TT_UCR_HEBREW (1L << 11) /* U+0590-U+05FF */
|
||||
#define TT_UCR_HEBREW (1UL << 11) /* U+0590-U+05FF */
|
||||
/* Bit 12 Vai */
|
||||
#define TT_UCR_VAI (1L << 12) /* U+A500-U+A63F */
|
||||
#define TT_UCR_VAI (1UL << 12) /* U+A500-U+A63F */
|
||||
/* Bit 13 Arabic */
|
||||
/* Arabic Supplement */
|
||||
#define TT_UCR_ARABIC (1L << 13) /* U+0600-U+06FF */
|
||||
#define TT_UCR_ARABIC (1UL << 13) /* U+0600-U+06FF */
|
||||
/* U+0750-U+077F */
|
||||
/* Bit 14 NKo */
|
||||
#define TT_UCR_NKO (1L << 14) /* U+07C0-U+07FF */
|
||||
#define TT_UCR_NKO (1UL << 14) /* U+07C0-U+07FF */
|
||||
/* Bit 15 Devanagari */
|
||||
#define TT_UCR_DEVANAGARI (1L << 15) /* U+0900-U+097F */
|
||||
/* Bit 16 Bengali */
|
||||
#define TT_UCR_BENGALI (1L << 16) /* U+0980-U+09FF */
|
||||
#define TT_UCR_DEVANAGARI (1UL << 15) /* U+0900-U+097F */
|
||||
/* Bit 16 Bangla (Bengali) */
|
||||
#define TT_UCR_BENGALI (1UL << 16) /* U+0980-U+09FF */
|
||||
/* Bit 17 Gurmukhi */
|
||||
#define TT_UCR_GURMUKHI (1L << 17) /* U+0A00-U+0A7F */
|
||||
#define TT_UCR_GURMUKHI (1UL << 17) /* U+0A00-U+0A7F */
|
||||
/* Bit 18 Gujarati */
|
||||
#define TT_UCR_GUJARATI (1L << 18) /* U+0A80-U+0AFF */
|
||||
/* Bit 19 Oriya */
|
||||
#define TT_UCR_ORIYA (1L << 19) /* U+0B00-U+0B7F */
|
||||
#define TT_UCR_GUJARATI (1UL << 18) /* U+0A80-U+0AFF */
|
||||
/* Bit 19 Oriya (Odia) */
|
||||
#define TT_UCR_ORIYA (1UL << 19) /* U+0B00-U+0B7F */
|
||||
/* Bit 20 Tamil */
|
||||
#define TT_UCR_TAMIL (1L << 20) /* U+0B80-U+0BFF */
|
||||
#define TT_UCR_TAMIL (1UL << 20) /* U+0B80-U+0BFF */
|
||||
/* Bit 21 Telugu */
|
||||
#define TT_UCR_TELUGU (1L << 21) /* U+0C00-U+0C7F */
|
||||
#define TT_UCR_TELUGU (1UL << 21) /* U+0C00-U+0C7F */
|
||||
/* Bit 22 Kannada */
|
||||
#define TT_UCR_KANNADA (1L << 22) /* U+0C80-U+0CFF */
|
||||
#define TT_UCR_KANNADA (1UL << 22) /* U+0C80-U+0CFF */
|
||||
/* Bit 23 Malayalam */
|
||||
#define TT_UCR_MALAYALAM (1L << 23) /* U+0D00-U+0D7F */
|
||||
#define TT_UCR_MALAYALAM (1UL << 23) /* U+0D00-U+0D7F */
|
||||
/* Bit 24 Thai */
|
||||
#define TT_UCR_THAI (1L << 24) /* U+0E00-U+0E7F */
|
||||
#define TT_UCR_THAI (1UL << 24) /* U+0E00-U+0E7F */
|
||||
/* Bit 25 Lao */
|
||||
#define TT_UCR_LAO (1L << 25) /* U+0E80-U+0EFF */
|
||||
#define TT_UCR_LAO (1UL << 25) /* U+0E80-U+0EFF */
|
||||
/* Bit 26 Georgian */
|
||||
/* Georgian Supplement */
|
||||
#define TT_UCR_GEORGIAN (1L << 26) /* U+10A0-U+10FF */
|
||||
#define TT_UCR_GEORGIAN (1UL << 26) /* U+10A0-U+10FF */
|
||||
/* U+2D00-U+2D2F */
|
||||
/* Bit 27 Balinese */
|
||||
#define TT_UCR_BALINESE (1L << 27) /* U+1B00-U+1B7F */
|
||||
#define TT_UCR_BALINESE (1UL << 27) /* U+1B00-U+1B7F */
|
||||
/* Bit 28 Hangul Jamo */
|
||||
#define TT_UCR_HANGUL_JAMO (1L << 28) /* U+1100-U+11FF */
|
||||
#define TT_UCR_HANGUL_JAMO (1UL << 28) /* U+1100-U+11FF */
|
||||
/* Bit 29 Latin Extended Additional */
|
||||
/* Latin Extended-C */
|
||||
/* Latin Extended-D */
|
||||
#define TT_UCR_LATIN_EXTENDED_ADDITIONAL (1L << 29) /* U+1E00-U+1EFF */
|
||||
#define TT_UCR_LATIN_EXTENDED_ADDITIONAL (1UL << 29) /* U+1E00-U+1EFF */
|
||||
/* U+2C60-U+2C7F */
|
||||
/* U+A720-U+A7FF */
|
||||
/* Bit 30 Greek Extended */
|
||||
#define TT_UCR_GREEK_EXTENDED (1L << 30) /* U+1F00-U+1FFF */
|
||||
#define TT_UCR_GREEK_EXTENDED (1UL << 30) /* U+1F00-U+1FFF */
|
||||
/* Bit 31 General Punctuation */
|
||||
/* Supplemental Punctuation */
|
||||
#define TT_UCR_GENERAL_PUNCTUATION (1L << 31) /* U+2000-U+206F */
|
||||
#define TT_UCR_GENERAL_PUNCTUATION (1UL << 31) /* U+2000-U+206F */
|
||||
/* U+2E00-U+2E7F */
|
||||
|
||||
/* ulUnicodeRange2 */
|
||||
/* --------------- */
|
||||
|
||||
/* Bit 32 Superscripts And Subscripts */
|
||||
#define TT_UCR_SUPERSCRIPTS_SUBSCRIPTS (1L << 0) /* U+2070-U+209F */
|
||||
#define TT_UCR_SUPERSCRIPTS_SUBSCRIPTS (1UL << 0) /* U+2070-U+209F */
|
||||
/* Bit 33 Currency Symbols */
|
||||
#define TT_UCR_CURRENCY_SYMBOLS (1L << 1) /* U+20A0-U+20CF */
|
||||
#define TT_UCR_CURRENCY_SYMBOLS (1UL << 1) /* U+20A0-U+20CF */
|
||||
/* Bit 34 Combining Diacritical Marks For Symbols */
|
||||
#define TT_UCR_COMBINING_DIACRITICAL_MARKS_SYMB \
|
||||
(1L << 2) /* U+20D0-U+20FF */
|
||||
(1UL << 2) /* U+20D0-U+20FF */
|
||||
/* Bit 35 Letterlike Symbols */
|
||||
#define TT_UCR_LETTERLIKE_SYMBOLS (1L << 3) /* U+2100-U+214F */
|
||||
#define TT_UCR_LETTERLIKE_SYMBOLS (1UL << 3) /* U+2100-U+214F */
|
||||
/* Bit 36 Number Forms */
|
||||
#define TT_UCR_NUMBER_FORMS (1L << 4) /* U+2150-U+218F */
|
||||
#define TT_UCR_NUMBER_FORMS (1UL << 4) /* U+2150-U+218F */
|
||||
/* Bit 37 Arrows */
|
||||
/* Supplemental Arrows-A */
|
||||
/* Supplemental Arrows-B */
|
||||
/* Miscellaneous Symbols and Arrows */
|
||||
#define TT_UCR_ARROWS (1L << 5) /* U+2190-U+21FF */
|
||||
#define TT_UCR_ARROWS (1UL << 5) /* U+2190-U+21FF */
|
||||
/* U+27F0-U+27FF */
|
||||
/* U+2900-U+297F */
|
||||
/* U+2B00-U+2BFF */
|
||||
@ -961,52 +961,52 @@ FT_BEGIN_HEADER
|
||||
/* Supplemental Mathematical Operators */
|
||||
/* Miscellaneous Mathematical Symbols-A */
|
||||
/* Miscellaneous Mathematical Symbols-B */
|
||||
#define TT_UCR_MATHEMATICAL_OPERATORS (1L << 6) /* U+2200-U+22FF */
|
||||
#define TT_UCR_MATHEMATICAL_OPERATORS (1UL << 6) /* U+2200-U+22FF */
|
||||
/* U+2A00-U+2AFF */
|
||||
/* U+27C0-U+27EF */
|
||||
/* U+2980-U+29FF */
|
||||
/* Bit 39 Miscellaneous Technical */
|
||||
#define TT_UCR_MISCELLANEOUS_TECHNICAL (1L << 7) /* U+2300-U+23FF */
|
||||
#define TT_UCR_MISCELLANEOUS_TECHNICAL (1UL << 7) /* U+2300-U+23FF */
|
||||
/* Bit 40 Control Pictures */
|
||||
#define TT_UCR_CONTROL_PICTURES (1L << 8) /* U+2400-U+243F */
|
||||
#define TT_UCR_CONTROL_PICTURES (1UL << 8) /* U+2400-U+243F */
|
||||
/* Bit 41 Optical Character Recognition */
|
||||
#define TT_UCR_OCR (1L << 9) /* U+2440-U+245F */
|
||||
#define TT_UCR_OCR (1UL << 9) /* U+2440-U+245F */
|
||||
/* Bit 42 Enclosed Alphanumerics */
|
||||
#define TT_UCR_ENCLOSED_ALPHANUMERICS (1L << 10) /* U+2460-U+24FF */
|
||||
#define TT_UCR_ENCLOSED_ALPHANUMERICS (1UL << 10) /* U+2460-U+24FF */
|
||||
/* Bit 43 Box Drawing */
|
||||
#define TT_UCR_BOX_DRAWING (1L << 11) /* U+2500-U+257F */
|
||||
#define TT_UCR_BOX_DRAWING (1UL << 11) /* U+2500-U+257F */
|
||||
/* Bit 44 Block Elements */
|
||||
#define TT_UCR_BLOCK_ELEMENTS (1L << 12) /* U+2580-U+259F */
|
||||
#define TT_UCR_BLOCK_ELEMENTS (1UL << 12) /* U+2580-U+259F */
|
||||
/* Bit 45 Geometric Shapes */
|
||||
#define TT_UCR_GEOMETRIC_SHAPES (1L << 13) /* U+25A0-U+25FF */
|
||||
#define TT_UCR_GEOMETRIC_SHAPES (1UL << 13) /* U+25A0-U+25FF */
|
||||
/* Bit 46 Miscellaneous Symbols */
|
||||
#define TT_UCR_MISCELLANEOUS_SYMBOLS (1L << 14) /* U+2600-U+26FF */
|
||||
#define TT_UCR_MISCELLANEOUS_SYMBOLS (1UL << 14) /* U+2600-U+26FF */
|
||||
/* Bit 47 Dingbats */
|
||||
#define TT_UCR_DINGBATS (1L << 15) /* U+2700-U+27BF */
|
||||
#define TT_UCR_DINGBATS (1UL << 15) /* U+2700-U+27BF */
|
||||
/* Bit 48 CJK Symbols and Punctuation */
|
||||
#define TT_UCR_CJK_SYMBOLS (1L << 16) /* U+3000-U+303F */
|
||||
#define TT_UCR_CJK_SYMBOLS (1UL << 16) /* U+3000-U+303F */
|
||||
/* Bit 49 Hiragana */
|
||||
#define TT_UCR_HIRAGANA (1L << 17) /* U+3040-U+309F */
|
||||
#define TT_UCR_HIRAGANA (1UL << 17) /* U+3040-U+309F */
|
||||
/* Bit 50 Katakana */
|
||||
/* Katakana Phonetic Extensions */
|
||||
#define TT_UCR_KATAKANA (1L << 18) /* U+30A0-U+30FF */
|
||||
#define TT_UCR_KATAKANA (1UL << 18) /* U+30A0-U+30FF */
|
||||
/* U+31F0-U+31FF */
|
||||
/* Bit 51 Bopomofo */
|
||||
/* Bopomofo Extended */
|
||||
#define TT_UCR_BOPOMOFO (1L << 19) /* U+3100-U+312F */
|
||||
#define TT_UCR_BOPOMOFO (1UL << 19) /* U+3100-U+312F */
|
||||
/* U+31A0-U+31BF */
|
||||
/* Bit 52 Hangul Compatibility Jamo */
|
||||
#define TT_UCR_HANGUL_COMPATIBILITY_JAMO (1L << 20) /* U+3130-U+318F */
|
||||
#define TT_UCR_HANGUL_COMPATIBILITY_JAMO (1UL << 20) /* U+3130-U+318F */
|
||||
/* Bit 53 Phags-Pa */
|
||||
#define TT_UCR_CJK_MISC (1L << 21) /* U+A840-U+A87F */
|
||||
#define TT_UCR_KANBUN TT_UCR_CJK_MISC /* deprecated */
|
||||
#define TT_UCR_PHAGSPA
|
||||
#define TT_UCR_PHAGSPA (1UL << 21) /* U+A840-U+A87F */
|
||||
#define TT_UCR_KANBUN TT_UCR_PHAGSPA /* deprecated */
|
||||
#define TT_UCR_CJK_MISC TT_UCR_PHAGSPA /* deprecated */
|
||||
/* Bit 54 Enclosed CJK Letters and Months */
|
||||
#define TT_UCR_ENCLOSED_CJK_LETTERS_MONTHS (1L << 22) /* U+3200-U+32FF */
|
||||
#define TT_UCR_ENCLOSED_CJK_LETTERS_MONTHS (1UL << 22) /* U+3200-U+32FF */
|
||||
/* Bit 55 CJK Compatibility */
|
||||
#define TT_UCR_CJK_COMPATIBILITY (1L << 23) /* U+3300-U+33FF */
|
||||
#define TT_UCR_CJK_COMPATIBILITY (1UL << 23) /* U+3300-U+33FF */
|
||||
/* Bit 56 Hangul Syllables */
|
||||
#define TT_UCR_HANGUL (1L << 24) /* U+AC00-U+D7A3 */
|
||||
#define TT_UCR_HANGUL (1UL << 24) /* U+AC00-U+D7A3 */
|
||||
/* Bit 57 High Surrogates */
|
||||
/* High Private Use Surrogates */
|
||||
/* Low Surrogates */
|
||||
@ -1017,12 +1017,12 @@ FT_BEGIN_HEADER
|
||||
/* Basic Multilingual Plane that is */
|
||||
/* supported by this font. So it really */
|
||||
/* means >= U+10000. */
|
||||
#define TT_UCR_SURROGATES (1L << 25) /* U+D800-U+DB7F */
|
||||
#define TT_UCR_SURROGATES (1UL << 25) /* U+D800-U+DB7F */
|
||||
/* U+DB80-U+DBFF */
|
||||
/* U+DC00-U+DFFF */
|
||||
#define TT_UCR_NON_PLANE_0 TT_UCR_SURROGATES
|
||||
/* Bit 58 Phoenician */
|
||||
#define TT_UCR_PHOENICIAN (1L << 26) /*U+10900-U+1091F*/
|
||||
#define TT_UCR_PHOENICIAN (1UL << 26) /*U+10900-U+1091F*/
|
||||
/* Bit 59 CJK Unified Ideographs */
|
||||
/* CJK Radicals Supplement */
|
||||
/* Kangxi Radicals */
|
||||
@ -1030,7 +1030,7 @@ FT_BEGIN_HEADER
|
||||
/* CJK Unified Ideographs Extension A */
|
||||
/* CJK Unified Ideographs Extension B */
|
||||
/* Kanbun */
|
||||
#define TT_UCR_CJK_UNIFIED_IDEOGRAPHS (1L << 27) /* U+4E00-U+9FFF */
|
||||
#define TT_UCR_CJK_UNIFIED_IDEOGRAPHS (1UL << 27) /* U+4E00-U+9FFF */
|
||||
/* U+2E80-U+2EFF */
|
||||
/* U+2F00-U+2FDF */
|
||||
/* U+2FF0-U+2FFF */
|
||||
@ -1038,178 +1038,178 @@ FT_BEGIN_HEADER
|
||||
/*U+20000-U+2A6DF*/
|
||||
/* U+3190-U+319F */
|
||||
/* Bit 60 Private Use */
|
||||
#define TT_UCR_PRIVATE_USE (1L << 28) /* U+E000-U+F8FF */
|
||||
#define TT_UCR_PRIVATE_USE (1UL << 28) /* U+E000-U+F8FF */
|
||||
/* Bit 61 CJK Strokes */
|
||||
/* CJK Compatibility Ideographs */
|
||||
/* CJK Compatibility Ideographs Supplement */
|
||||
#define TT_UCR_CJK_COMPATIBILITY_IDEOGRAPHS (1L << 29) /* U+31C0-U+31EF */
|
||||
#define TT_UCR_CJK_COMPATIBILITY_IDEOGRAPHS (1UL << 29) /* U+31C0-U+31EF */
|
||||
/* U+F900-U+FAFF */
|
||||
/*U+2F800-U+2FA1F*/
|
||||
/* Bit 62 Alphabetic Presentation Forms */
|
||||
#define TT_UCR_ALPHABETIC_PRESENTATION_FORMS (1L << 30) /* U+FB00-U+FB4F */
|
||||
#define TT_UCR_ALPHABETIC_PRESENTATION_FORMS (1UL << 30) /* U+FB00-U+FB4F */
|
||||
/* Bit 63 Arabic Presentation Forms-A */
|
||||
#define TT_UCR_ARABIC_PRESENTATION_FORMS_A (1L << 31) /* U+FB50-U+FDFF */
|
||||
#define TT_UCR_ARABIC_PRESENTATION_FORMS_A (1UL << 31) /* U+FB50-U+FDFF */
|
||||
|
||||
/* ulUnicodeRange3 */
|
||||
/* --------------- */
|
||||
|
||||
/* Bit 64 Combining Half Marks */
|
||||
#define TT_UCR_COMBINING_HALF_MARKS (1L << 0) /* U+FE20-U+FE2F */
|
||||
#define TT_UCR_COMBINING_HALF_MARKS (1UL << 0) /* U+FE20-U+FE2F */
|
||||
/* Bit 65 Vertical forms */
|
||||
/* CJK Compatibility Forms */
|
||||
#define TT_UCR_CJK_COMPATIBILITY_FORMS (1L << 1) /* U+FE10-U+FE1F */
|
||||
#define TT_UCR_CJK_COMPATIBILITY_FORMS (1UL << 1) /* U+FE10-U+FE1F */
|
||||
/* U+FE30-U+FE4F */
|
||||
/* Bit 66 Small Form Variants */
|
||||
#define TT_UCR_SMALL_FORM_VARIANTS (1L << 2) /* U+FE50-U+FE6F */
|
||||
#define TT_UCR_SMALL_FORM_VARIANTS (1UL << 2) /* U+FE50-U+FE6F */
|
||||
/* Bit 67 Arabic Presentation Forms-B */
|
||||
#define TT_UCR_ARABIC_PRESENTATION_FORMS_B (1L << 3) /* U+FE70-U+FEFE */
|
||||
#define TT_UCR_ARABIC_PRESENTATION_FORMS_B (1UL << 3) /* U+FE70-U+FEFF */
|
||||
/* Bit 68 Halfwidth and Fullwidth Forms */
|
||||
#define TT_UCR_HALFWIDTH_FULLWIDTH_FORMS (1L << 4) /* U+FF00-U+FFEF */
|
||||
#define TT_UCR_HALFWIDTH_FULLWIDTH_FORMS (1UL << 4) /* U+FF00-U+FFEF */
|
||||
/* Bit 69 Specials */
|
||||
#define TT_UCR_SPECIALS (1L << 5) /* U+FFF0-U+FFFD */
|
||||
#define TT_UCR_SPECIALS (1UL << 5) /* U+FFF0-U+FFFF */
|
||||
/* Bit 70 Tibetan */
|
||||
#define TT_UCR_TIBETAN (1L << 6) /* U+0F00-U+0FFF */
|
||||
#define TT_UCR_TIBETAN (1UL << 6) /* U+0F00-U+0FFF */
|
||||
/* Bit 71 Syriac */
|
||||
#define TT_UCR_SYRIAC (1L << 7) /* U+0700-U+074F */
|
||||
#define TT_UCR_SYRIAC (1UL << 7) /* U+0700-U+074F */
|
||||
/* Bit 72 Thaana */
|
||||
#define TT_UCR_THAANA (1L << 8) /* U+0780-U+07BF */
|
||||
#define TT_UCR_THAANA (1UL << 8) /* U+0780-U+07BF */
|
||||
/* Bit 73 Sinhala */
|
||||
#define TT_UCR_SINHALA (1L << 9) /* U+0D80-U+0DFF */
|
||||
#define TT_UCR_SINHALA (1UL << 9) /* U+0D80-U+0DFF */
|
||||
/* Bit 74 Myanmar */
|
||||
#define TT_UCR_MYANMAR (1L << 10) /* U+1000-U+109F */
|
||||
#define TT_UCR_MYANMAR (1UL << 10) /* U+1000-U+109F */
|
||||
/* Bit 75 Ethiopic */
|
||||
/* Ethiopic Supplement */
|
||||
/* Ethiopic Extended */
|
||||
#define TT_UCR_ETHIOPIC (1L << 11) /* U+1200-U+137F */
|
||||
#define TT_UCR_ETHIOPIC (1UL << 11) /* U+1200-U+137F */
|
||||
/* U+1380-U+139F */
|
||||
/* U+2D80-U+2DDF */
|
||||
/* Bit 76 Cherokee */
|
||||
#define TT_UCR_CHEROKEE (1L << 12) /* U+13A0-U+13FF */
|
||||
#define TT_UCR_CHEROKEE (1UL << 12) /* U+13A0-U+13FF */
|
||||
/* Bit 77 Unified Canadian Aboriginal Syllabics */
|
||||
#define TT_UCR_CANADIAN_ABORIGINAL_SYLLABICS (1L << 13) /* U+1400-U+167F */
|
||||
#define TT_UCR_CANADIAN_ABORIGINAL_SYLLABICS (1UL << 13) /* U+1400-U+167F */
|
||||
/* Bit 78 Ogham */
|
||||
#define TT_UCR_OGHAM (1L << 14) /* U+1680-U+169F */
|
||||
#define TT_UCR_OGHAM (1UL << 14) /* U+1680-U+169F */
|
||||
/* Bit 79 Runic */
|
||||
#define TT_UCR_RUNIC (1L << 15) /* U+16A0-U+16FF */
|
||||
#define TT_UCR_RUNIC (1UL << 15) /* U+16A0-U+16FF */
|
||||
/* Bit 80 Khmer */
|
||||
/* Khmer Symbols */
|
||||
#define TT_UCR_KHMER (1L << 16) /* U+1780-U+17FF */
|
||||
#define TT_UCR_KHMER (1UL << 16) /* U+1780-U+17FF */
|
||||
/* U+19E0-U+19FF */
|
||||
/* Bit 81 Mongolian */
|
||||
#define TT_UCR_MONGOLIAN (1L << 17) /* U+1800-U+18AF */
|
||||
#define TT_UCR_MONGOLIAN (1UL << 17) /* U+1800-U+18AF */
|
||||
/* Bit 82 Braille Patterns */
|
||||
#define TT_UCR_BRAILLE (1L << 18) /* U+2800-U+28FF */
|
||||
#define TT_UCR_BRAILLE (1UL << 18) /* U+2800-U+28FF */
|
||||
/* Bit 83 Yi Syllables */
|
||||
/* Yi Radicals */
|
||||
#define TT_UCR_YI (1L << 19) /* U+A000-U+A48F */
|
||||
#define TT_UCR_YI (1UL << 19) /* U+A000-U+A48F */
|
||||
/* U+A490-U+A4CF */
|
||||
/* Bit 84 Tagalog */
|
||||
/* Hanunoo */
|
||||
/* Buhid */
|
||||
/* Tagbanwa */
|
||||
#define TT_UCR_PHILIPPINE (1L << 20) /* U+1700-U+171F */
|
||||
#define TT_UCR_PHILIPPINE (1UL << 20) /* U+1700-U+171F */
|
||||
/* U+1720-U+173F */
|
||||
/* U+1740-U+175F */
|
||||
/* U+1760-U+177F */
|
||||
/* Bit 85 Old Italic */
|
||||
#define TT_UCR_OLD_ITALIC (1L << 21) /*U+10300-U+1032F*/
|
||||
#define TT_UCR_OLD_ITALIC (1UL << 21) /*U+10300-U+1032F*/
|
||||
/* Bit 86 Gothic */
|
||||
#define TT_UCR_GOTHIC (1L << 22) /*U+10330-U+1034F*/
|
||||
#define TT_UCR_GOTHIC (1UL << 22) /*U+10330-U+1034F*/
|
||||
/* Bit 87 Deseret */
|
||||
#define TT_UCR_DESERET (1L << 23) /*U+10400-U+1044F*/
|
||||
#define TT_UCR_DESERET (1UL << 23) /*U+10400-U+1044F*/
|
||||
/* Bit 88 Byzantine Musical Symbols */
|
||||
/* Musical Symbols */
|
||||
/* Ancient Greek Musical Notation */
|
||||
#define TT_UCR_MUSICAL_SYMBOLS (1L << 24) /*U+1D000-U+1D0FF*/
|
||||
#define TT_UCR_MUSICAL_SYMBOLS (1UL << 24) /*U+1D000-U+1D0FF*/
|
||||
/*U+1D100-U+1D1FF*/
|
||||
/*U+1D200-U+1D24F*/
|
||||
/* Bit 89 Mathematical Alphanumeric Symbols */
|
||||
#define TT_UCR_MATH_ALPHANUMERIC_SYMBOLS (1L << 25) /*U+1D400-U+1D7FF*/
|
||||
#define TT_UCR_MATH_ALPHANUMERIC_SYMBOLS (1UL << 25) /*U+1D400-U+1D7FF*/
|
||||
/* Bit 90 Private Use (plane 15) */
|
||||
/* Private Use (plane 16) */
|
||||
#define TT_UCR_PRIVATE_USE_SUPPLEMENTARY (1L << 26) /*U+F0000-U+FFFFD*/
|
||||
#define TT_UCR_PRIVATE_USE_SUPPLEMENTARY (1UL << 26) /*U+F0000-U+FFFFD*/
|
||||
/*U+100000-U+10FFFD*/
|
||||
/* Bit 91 Variation Selectors */
|
||||
/* Variation Selectors Supplement */
|
||||
#define TT_UCR_VARIATION_SELECTORS (1L << 27) /* U+FE00-U+FE0F */
|
||||
#define TT_UCR_VARIATION_SELECTORS (1UL << 27) /* U+FE00-U+FE0F */
|
||||
/*U+E0100-U+E01EF*/
|
||||
/* Bit 92 Tags */
|
||||
#define TT_UCR_TAGS (1L << 28) /*U+E0000-U+E007F*/
|
||||
#define TT_UCR_TAGS (1UL << 28) /*U+E0000-U+E007F*/
|
||||
/* Bit 93 Limbu */
|
||||
#define TT_UCR_LIMBU (1L << 29) /* U+1900-U+194F */
|
||||
#define TT_UCR_LIMBU (1UL << 29) /* U+1900-U+194F */
|
||||
/* Bit 94 Tai Le */
|
||||
#define TT_UCR_TAI_LE (1L << 30) /* U+1950-U+197F */
|
||||
#define TT_UCR_TAI_LE (1UL << 30) /* U+1950-U+197F */
|
||||
/* Bit 95 New Tai Lue */
|
||||
#define TT_UCR_NEW_TAI_LUE (1L << 31) /* U+1980-U+19DF */
|
||||
#define TT_UCR_NEW_TAI_LUE (1UL << 31) /* U+1980-U+19DF */
|
||||
|
||||
/* ulUnicodeRange4 */
|
||||
/* --------------- */
|
||||
|
||||
/* Bit 96 Buginese */
|
||||
#define TT_UCR_BUGINESE (1L << 0) /* U+1A00-U+1A1F */
|
||||
#define TT_UCR_BUGINESE (1UL << 0) /* U+1A00-U+1A1F */
|
||||
/* Bit 97 Glagolitic */
|
||||
#define TT_UCR_GLAGOLITIC (1L << 1) /* U+2C00-U+2C5F */
|
||||
#define TT_UCR_GLAGOLITIC (1UL << 1) /* U+2C00-U+2C5F */
|
||||
/* Bit 98 Tifinagh */
|
||||
#define TT_UCR_TIFINAGH (1L << 2) /* U+2D30-U+2D7F */
|
||||
#define TT_UCR_TIFINAGH (1UL << 2) /* U+2D30-U+2D7F */
|
||||
/* Bit 99 Yijing Hexagram Symbols */
|
||||
#define TT_UCR_YIJING (1L << 3) /* U+4DC0-U+4DFF */
|
||||
#define TT_UCR_YIJING (1UL << 3) /* U+4DC0-U+4DFF */
|
||||
/* Bit 100 Syloti Nagri */
|
||||
#define TT_UCR_SYLOTI_NAGRI (1L << 4) /* U+A800-U+A82F */
|
||||
#define TT_UCR_SYLOTI_NAGRI (1UL << 4) /* U+A800-U+A82F */
|
||||
/* Bit 101 Linear B Syllabary */
|
||||
/* Linear B Ideograms */
|
||||
/* Aegean Numbers */
|
||||
#define TT_UCR_LINEAR_B (1L << 5) /*U+10000-U+1007F*/
|
||||
#define TT_UCR_LINEAR_B (1UL << 5) /*U+10000-U+1007F*/
|
||||
/*U+10080-U+100FF*/
|
||||
/*U+10100-U+1013F*/
|
||||
/* Bit 102 Ancient Greek Numbers */
|
||||
#define TT_UCR_ANCIENT_GREEK_NUMBERS (1L << 6) /*U+10140-U+1018F*/
|
||||
#define TT_UCR_ANCIENT_GREEK_NUMBERS (1UL << 6) /*U+10140-U+1018F*/
|
||||
/* Bit 103 Ugaritic */
|
||||
#define TT_UCR_UGARITIC (1L << 7) /*U+10380-U+1039F*/
|
||||
#define TT_UCR_UGARITIC (1UL << 7) /*U+10380-U+1039F*/
|
||||
/* Bit 104 Old Persian */
|
||||
#define TT_UCR_OLD_PERSIAN (1L << 8) /*U+103A0-U+103DF*/
|
||||
#define TT_UCR_OLD_PERSIAN (1UL << 8) /*U+103A0-U+103DF*/
|
||||
/* Bit 105 Shavian */
|
||||
#define TT_UCR_SHAVIAN (1L << 9) /*U+10450-U+1047F*/
|
||||
#define TT_UCR_SHAVIAN (1UL << 9) /*U+10450-U+1047F*/
|
||||
/* Bit 106 Osmanya */
|
||||
#define TT_UCR_OSMANYA (1L << 10) /*U+10480-U+104AF*/
|
||||
#define TT_UCR_OSMANYA (1UL << 10) /*U+10480-U+104AF*/
|
||||
/* Bit 107 Cypriot Syllabary */
|
||||
#define TT_UCR_CYPRIOT_SYLLABARY (1L << 11) /*U+10800-U+1083F*/
|
||||
#define TT_UCR_CYPRIOT_SYLLABARY (1UL << 11) /*U+10800-U+1083F*/
|
||||
/* Bit 108 Kharoshthi */
|
||||
#define TT_UCR_KHAROSHTHI (1L << 12) /*U+10A00-U+10A5F*/
|
||||
#define TT_UCR_KHAROSHTHI (1UL << 12) /*U+10A00-U+10A5F*/
|
||||
/* Bit 109 Tai Xuan Jing Symbols */
|
||||
#define TT_UCR_TAI_XUAN_JING (1L << 13) /*U+1D300-U+1D35F*/
|
||||
#define TT_UCR_TAI_XUAN_JING (1UL << 13) /*U+1D300-U+1D35F*/
|
||||
/* Bit 110 Cuneiform */
|
||||
/* Cuneiform Numbers and Punctuation */
|
||||
#define TT_UCR_CUNEIFORM (1L << 14) /*U+12000-U+123FF*/
|
||||
#define TT_UCR_CUNEIFORM (1UL << 14) /*U+12000-U+123FF*/
|
||||
/*U+12400-U+1247F*/
|
||||
/* Bit 111 Counting Rod Numerals */
|
||||
#define TT_UCR_COUNTING_ROD_NUMERALS (1L << 15) /*U+1D360-U+1D37F*/
|
||||
#define TT_UCR_COUNTING_ROD_NUMERALS (1UL << 15) /*U+1D360-U+1D37F*/
|
||||
/* Bit 112 Sundanese */
|
||||
#define TT_UCR_SUNDANESE (1L << 16) /* U+1B80-U+1BBF */
|
||||
#define TT_UCR_SUNDANESE (1UL << 16) /* U+1B80-U+1BBF */
|
||||
/* Bit 113 Lepcha */
|
||||
#define TT_UCR_LEPCHA (1L << 17) /* U+1C00-U+1C4F */
|
||||
#define TT_UCR_LEPCHA (1UL << 17) /* U+1C00-U+1C4F */
|
||||
/* Bit 114 Ol Chiki */
|
||||
#define TT_UCR_OL_CHIKI (1L << 18) /* U+1C50-U+1C7F */
|
||||
#define TT_UCR_OL_CHIKI (1UL << 18) /* U+1C50-U+1C7F */
|
||||
/* Bit 115 Saurashtra */
|
||||
#define TT_UCR_SAURASHTRA (1L << 19) /* U+A880-U+A8DF */
|
||||
#define TT_UCR_SAURASHTRA (1UL << 19) /* U+A880-U+A8DF */
|
||||
/* Bit 116 Kayah Li */
|
||||
#define TT_UCR_KAYAH_LI (1L << 20) /* U+A900-U+A92F */
|
||||
#define TT_UCR_KAYAH_LI (1UL << 20) /* U+A900-U+A92F */
|
||||
/* Bit 117 Rejang */
|
||||
#define TT_UCR_REJANG (1L << 21) /* U+A930-U+A95F */
|
||||
#define TT_UCR_REJANG (1UL << 21) /* U+A930-U+A95F */
|
||||
/* Bit 118 Cham */
|
||||
#define TT_UCR_CHAM (1L << 22) /* U+AA00-U+AA5F */
|
||||
#define TT_UCR_CHAM (1UL << 22) /* U+AA00-U+AA5F */
|
||||
/* Bit 119 Ancient Symbols */
|
||||
#define TT_UCR_ANCIENT_SYMBOLS (1L << 23) /*U+10190-U+101CF*/
|
||||
#define TT_UCR_ANCIENT_SYMBOLS (1UL << 23) /*U+10190-U+101CF*/
|
||||
/* Bit 120 Phaistos Disc */
|
||||
#define TT_UCR_PHAISTOS_DISC (1L << 24) /*U+101D0-U+101FF*/
|
||||
#define TT_UCR_PHAISTOS_DISC (1UL << 24) /*U+101D0-U+101FF*/
|
||||
/* Bit 121 Carian */
|
||||
/* Lycian */
|
||||
/* Lydian */
|
||||
#define TT_UCR_OLD_ANATOLIAN (1L << 25) /*U+102A0-U+102DF*/
|
||||
#define TT_UCR_OLD_ANATOLIAN (1UL << 25) /*U+102A0-U+102DF*/
|
||||
/*U+10280-U+1029F*/
|
||||
/*U+10920-U+1093F*/
|
||||
/* Bit 122 Domino Tiles */
|
||||
/* Mahjong Tiles */
|
||||
#define TT_UCR_GAME_TILES (1L << 26) /*U+1F030-U+1F09F*/
|
||||
#define TT_UCR_GAME_TILES (1UL << 26) /*U+1F030-U+1F09F*/
|
||||
/*U+1F000-U+1F02F*/
|
||||
/* Bit 123-127 Reserved for process-internal usage */
|
||||
|
||||
|
||||
13
thirdparty/freetype/include/freetype/tttables.h
vendored
13
thirdparty/freetype/include/freetype/tttables.h
vendored
@ -5,7 +5,7 @@
|
||||
* Basic SFNT/TrueType tables definitions and interface
|
||||
* (specification only).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -192,7 +192,7 @@ FT_BEGIN_HEADER
|
||||
* A pointer into the 'hmtx' table.
|
||||
*
|
||||
* @note:
|
||||
* For an OpenType variation font, the values of the following fields can
|
||||
* For OpenType Font Variations, the values of the following fields can
|
||||
* change after a call to @FT_Set_Var_Design_Coordinates (and friends) if
|
||||
* the font contains an 'MVAR' table: `caret_Slope_Rise`,
|
||||
* `caret_Slope_Run`, and `caret_Offset`.
|
||||
@ -310,7 +310,7 @@ FT_BEGIN_HEADER
|
||||
* A pointer into the 'vmtx' table.
|
||||
*
|
||||
* @note:
|
||||
* For an OpenType variation font, the values of the following fields can
|
||||
* For OpenType Font Variations, the values of the following fields can
|
||||
* change after a call to @FT_Set_Var_Design_Coordinates (and friends) if
|
||||
* the font contains an 'MVAR' table: `Ascender`, `Descender`,
|
||||
* `Line_Gap`, `caret_Slope_Rise`, `caret_Slope_Run`, and `caret_Offset`.
|
||||
@ -359,7 +359,7 @@ FT_BEGIN_HEADER
|
||||
* table. In this case, the `version` field is always set to 0xFFFF.
|
||||
*
|
||||
* @note:
|
||||
* For an OpenType variation font, the values of the following fields can
|
||||
* For OpenType Font Variations, the values of the following fields can
|
||||
* change after a call to @FT_Set_Var_Design_Coordinates (and friends) if
|
||||
* the font contains an 'MVAR' table: `sCapHeight`, `sTypoAscender`,
|
||||
* `sTypoDescender`, `sTypoLineGap`, `sxHeight`, `usWinAscent`,
|
||||
@ -442,7 +442,7 @@ FT_BEGIN_HEADER
|
||||
* them.
|
||||
*
|
||||
* @note:
|
||||
* For an OpenType variation font, the values of the following fields can
|
||||
* For OpenType Font Variations, the values of the following fields can
|
||||
* change after a call to @FT_Set_Var_Design_Coordinates (and friends) if
|
||||
* the font contains an 'MVAR' table: `underlinePosition` and
|
||||
* `underlineThickness`.
|
||||
@ -705,6 +705,9 @@ FT_BEGIN_HEADER
|
||||
* definitions found in the @FT_TRUETYPE_TAGS_H file, or forge a new
|
||||
* one with @FT_MAKE_TAG.
|
||||
*
|
||||
* [Since 2.14] Use value~1 if you want to access the table directory
|
||||
* of the (currently selected) font.
|
||||
*
|
||||
* offset ::
|
||||
* The starting offset in the table (or file if tag~==~0).
|
||||
*
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Tags for TrueType and OpenType tables (specification only).
|
||||
*
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Copyright (C) 1996-2025 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user