Update Freetype to 2.13.3
[ChangeLog][Third-Party Code] Updated bundled Freetype to version 2.13.3. Pick-to: 6.7 6.5 6.2 5.15 Task-number: QTBUG-128124 Change-Id: Ica2fd9ebfd53d6efde4614f09a7fea9f6857eeac Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit 7c7b34f76a78fb144600002c0aebe031e3dd42e9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
2e6b237b03
commit
9993c1d13e
10
src/3rdparty/freetype/README
vendored
10
src/3rdparty/freetype/README
vendored
@ -1,4 +1,4 @@
|
||||
FreeType 2.13.2
|
||||
FreeType 2.13.3
|
||||
===============
|
||||
|
||||
Homepage: https://www.freetype.org
|
||||
@ -32,9 +32,9 @@ sites. Go to
|
||||
|
||||
and download one of the following files.
|
||||
|
||||
freetype-doc-2.13.2.tar.xz
|
||||
freetype-doc-2.13.2.tar.gz
|
||||
ftdoc2132.zip
|
||||
freetype-doc-2.13.3.tar.xz
|
||||
freetype-doc-2.13.3.tar.gz
|
||||
ftdoc2133.zip
|
||||
|
||||
To view the documentation online, go to
|
||||
|
||||
@ -94,7 +94,7 @@ Enjoy!
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 2006-2023 by
|
||||
Copyright (C) 2006-2024 by
|
||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
|
||||
This file is part of the FreeType project, and may only be used,
|
||||
|
2
src/3rdparty/freetype/builds/unix/ftsystem.c
vendored
2
src/3rdparty/freetype/builds/unix/ftsystem.c
vendored
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Unix-specific FreeType low-level system interface (body).
|
||||
*
|
||||
* Copyright (C) 1996-2023 by
|
||||
* Copyright (C) 1996-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Debugging and logging component for Win32 (body).
|
||||
*
|
||||
* Copyright (C) 1996-2023 by
|
||||
* Copyright (C) 1996-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
42
src/3rdparty/freetype/docs/CHANGES
vendored
42
src/3rdparty/freetype/docs/CHANGES
vendored
@ -1,3 +1,43 @@
|
||||
CHANGES BETWEEN 2.13.2 and 2.13.3 (2024-Aug-11)
|
||||
|
||||
I. IMPORTANT CHANGES
|
||||
|
||||
- Some fields in the `FT_Outline` structure have been changed
|
||||
from signed to unsigned type, which better reflects the actual
|
||||
usage. It is also an additional means to protect against
|
||||
malformed input.
|
||||
|
||||
|
||||
II. IMPORTANT BUG FIXES
|
||||
|
||||
- Rare double-free crashes in the cache subsystem have been fixed.
|
||||
|
||||
- Excessive stack allocation in the autohinter has been fixed.
|
||||
|
||||
|
||||
III. MISCELLANEOUS
|
||||
|
||||
- The B/W rasterizer has received a major upkeep that results in
|
||||
large performance improvements. The rendering speed has increased
|
||||
and even doubled for very complex glyphs.
|
||||
|
||||
- If the new configuration option `TT_CONFIG_OPTION_GPOS_KERNING` is
|
||||
defined, `FT_Get_Kerning` understands rudimentary GPOS kerning
|
||||
(for TrueType fonts only). This is not enabled by default since
|
||||
its usage is very limited, mainly for legacy applications that
|
||||
have to support TrueType fonts automatically converted from 'kern'
|
||||
tables to GPOS kerning. If you need proper (GPOS) kerning support
|
||||
please use a higher-level library like HarfBuzz.
|
||||
|
||||
Code contributed by David Saltzman <davidbsaltzman@gmail.com>.
|
||||
|
||||
- The internal structures `PS_DesignMap` and `PS_Blend` related to
|
||||
parsing of old Multiple Masters fonts have been removed from the
|
||||
public header file `t1tables.h`.
|
||||
|
||||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.13.1 and 2.13.2 (2023-Aug-25)
|
||||
|
||||
I. MISCELLANEOUS
|
||||
@ -5668,7 +5708,7 @@ Extensions support:
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 2000-2023 by
|
||||
Copyright (C) 2000-2024 by
|
||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
|
||||
This file is part of the FreeType project, and may only be used,
|
||||
|
2
src/3rdparty/freetype/docs/CUSTOMIZE
vendored
2
src/3rdparty/freetype/docs/CUSTOMIZE
vendored
@ -139,7 +139,7 @@ IV. Overriding default configuration and module headers
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 2003-2023 by
|
||||
Copyright (C) 2003-2024 by
|
||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
|
||||
This file is part of the FreeType project, and may only be used,
|
||||
|
2
src/3rdparty/freetype/docs/DEBUG
vendored
2
src/3rdparty/freetype/docs/DEBUG
vendored
@ -297,7 +297,7 @@ to access them.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 2002-2023 by
|
||||
Copyright (C) 2002-2024 by
|
||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
|
||||
This file is part of the FreeType project, and may only be used,
|
||||
|
2
src/3rdparty/freetype/docs/TODO
vendored
2
src/3rdparty/freetype/docs/TODO
vendored
@ -27,7 +27,7 @@ Other bugs have been registered at the savannah bugzilla of FreeType.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 2001-2023 by
|
||||
Copyright (C) 2001-2024 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 @@
|
||||
*
|
||||
* ANSI-specific configuration file (specification only).
|
||||
*
|
||||
* Copyright (C) 1996-2023 by
|
||||
* Copyright (C) 1996-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -757,6 +757,22 @@ FT_BEGIN_HEADER
|
||||
#endif
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* Note that FreeType does not support more advanced GPOS layout features;
|
||||
* even the 'kern' feature implemented here doesn't handle more
|
||||
* sophisticated kerning variants. Use a higher-level library like
|
||||
* HarfBuzz instead for that.
|
||||
*/
|
||||
/* #define TT_CONFIG_OPTION_GPOS_KERNING */
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/**** ****/
|
||||
|
@ -5,7 +5,7 @@
|
||||
* ANSI-specific library and header configuration file (specification
|
||||
* only).
|
||||
*
|
||||
* Copyright (C) 2002-2023 by
|
||||
* Copyright (C) 2002-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 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 @@
|
||||
*
|
||||
* Mac/OS X support configuration header.
|
||||
*
|
||||
* Copyright (C) 1996-2023 by
|
||||
* Copyright (C) 1996-2024 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-2023 by
|
||||
* Copyright (C) 2020-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
118
src/3rdparty/freetype/include/freetype/freetype.h
vendored
118
src/3rdparty/freetype/include/freetype/freetype.h
vendored
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType high-level API and common types (specification only).
|
||||
*
|
||||
* Copyright (C) 1996-2023 by
|
||||
* Copyright (C) 1996-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -1322,9 +1322,13 @@ FT_BEGIN_HEADER
|
||||
* FT_FACE_FLAG_KERNING ::
|
||||
* The face contains kerning information. If set, the kerning distance
|
||||
* can be retrieved using the function @FT_Get_Kerning. Otherwise the
|
||||
* function always returns the vector (0,0). Note that FreeType
|
||||
* doesn't handle kerning data from the SFNT 'GPOS' table (as present
|
||||
* in many OpenType fonts).
|
||||
* function always returns the vector (0,0).
|
||||
*
|
||||
* Note that for TrueType fonts only, FreeType supports 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.
|
||||
*
|
||||
* FT_FACE_FLAG_FAST_GLYPHS ::
|
||||
* THIS FLAG IS DEPRECATED. DO NOT USE OR TEST IT.
|
||||
@ -3767,87 +3771,18 @@ FT_BEGIN_HEADER
|
||||
* pixels and use the @FT_PIXEL_MODE_LCD_V mode.
|
||||
*
|
||||
* FT_RENDER_MODE_SDF ::
|
||||
* This mode corresponds to 8-bit, single-channel signed distance field
|
||||
* (SDF) bitmaps. Each pixel in the SDF grid is the value from the
|
||||
* pixel's position to the nearest glyph's outline. The distances are
|
||||
* calculated from the center of the pixel and are positive if they are
|
||||
* filled by the outline (i.e., inside the outline) and negative
|
||||
* otherwise. Check the note below on how to convert the output values
|
||||
* to usable data.
|
||||
* The positive (unsigned) 8-bit bitmap values can be converted to the
|
||||
* single-channel signed distance field (SDF) by subtracting 128, with
|
||||
* the positive and negative results corresponding to the inside and
|
||||
* the outside of a glyph contour, respectively. The distance units are
|
||||
* arbitrarily determined by an adjustable @spread property.
|
||||
*
|
||||
* @note:
|
||||
* The selected render mode only affects vector glyphs of a font.
|
||||
* The selected render mode only affects scalable vector glyphs of a font.
|
||||
* Embedded bitmaps often have a different pixel mode like
|
||||
* @FT_PIXEL_MODE_MONO. You can use @FT_Bitmap_Convert to transform them
|
||||
* into 8-bit pixmaps.
|
||||
*
|
||||
* For @FT_RENDER_MODE_SDF the output bitmap buffer contains normalized
|
||||
* distances that are packed into unsigned 8-bit values. To get pixel
|
||||
* values in floating point representation use the following pseudo-C
|
||||
* code for the conversion.
|
||||
*
|
||||
* ```
|
||||
* // Load glyph and render using FT_RENDER_MODE_SDF,
|
||||
* // then use the output buffer as follows.
|
||||
*
|
||||
* ...
|
||||
* FT_Byte buffer = glyph->bitmap->buffer;
|
||||
*
|
||||
*
|
||||
* for pixel in buffer
|
||||
* {
|
||||
* // `sd` is the signed distance and `spread` is the current spread;
|
||||
* // the default spread is 2 and can be changed.
|
||||
*
|
||||
* float sd = (float)pixel - 128.0f;
|
||||
*
|
||||
*
|
||||
* // Convert to pixel values.
|
||||
* sd = ( sd / 128.0f ) * spread;
|
||||
*
|
||||
* // Store `sd` in a buffer or use as required.
|
||||
* }
|
||||
*
|
||||
* ```
|
||||
*
|
||||
* FreeType has two rasterizers for generating SDF, namely:
|
||||
*
|
||||
* 1. `sdf` for generating SDF directly from glyph's outline, and
|
||||
*
|
||||
* 2. `bsdf` for generating SDF from rasterized bitmaps.
|
||||
*
|
||||
* Depending on the glyph type (i.e., outline or bitmap), one of the two
|
||||
* rasterizers is chosen at runtime and used for generating SDFs. To
|
||||
* force the use of `bsdf` you should render the glyph with any of the
|
||||
* FreeType's other rendering modes (e.g., `FT_RENDER_MODE_NORMAL`) and
|
||||
* then re-render with `FT_RENDER_MODE_SDF`.
|
||||
*
|
||||
* There are some issues with stability and possible failures of the SDF
|
||||
* renderers (specifically `sdf`).
|
||||
*
|
||||
* 1. The `sdf` rasterizer is sensitive to really small features (e.g.,
|
||||
* sharp turns that are less than 1~pixel) and imperfections in the
|
||||
* glyph's outline, causing artifacts in the final output.
|
||||
*
|
||||
* 2. The `sdf` rasterizer has limited support for handling intersecting
|
||||
* contours and *cannot* handle self-intersecting contours whatsoever.
|
||||
* Self-intersection happens when a single connected contour
|
||||
* intersects itself at some point; having these in your font
|
||||
* definitely poses a problem to the rasterizer and cause artifacts,
|
||||
* too.
|
||||
*
|
||||
* 3. Generating SDF for really small glyphs may result in undesirable
|
||||
* output; the pixel grid (which stores distance information) becomes
|
||||
* too coarse.
|
||||
*
|
||||
* 4. Since the output buffer is normalized, precision at smaller spreads
|
||||
* is greater than precision at larger spread values because the
|
||||
* output range of [0..255] gets mapped to a smaller SDF range. A
|
||||
* spread of~2 should be sufficient in most cases.
|
||||
*
|
||||
* Points (1) and (2) can be avoided by using the `bsdf` rasterizer,
|
||||
* which is more stable than the `sdf` rasterizer in general.
|
||||
*
|
||||
*/
|
||||
typedef enum FT_Render_Mode_
|
||||
{
|
||||
@ -4058,9 +3993,26 @@ FT_BEGIN_HEADER
|
||||
* out of the scope of this API function -- they can be implemented
|
||||
* through format-specific interfaces.
|
||||
*
|
||||
* Kerning for OpenType fonts implemented in a 'GPOS' table is not
|
||||
* supported; use @FT_HAS_KERNING to find out whether a font has data
|
||||
* that can be extracted with `FT_Get_Kerning`.
|
||||
* 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.
|
||||
*
|
||||
* Also note for right-to-left scripts, the functionality may differ for
|
||||
* fonts with GPOS tables vs. 'kern' tables. For GPOS, right-to-left
|
||||
* fonts typically use both a placement offset and an advance for pair
|
||||
* positioning, which this API does not support, so it would output
|
||||
* kerning values of zero; though if the right-to-left font used only
|
||||
* advances in GPOS pair positioning, then this API could output kerning
|
||||
* values for it, but it would use `left_glyph` to mean the first glyph
|
||||
* for that case. Whereas 'kern' tables are always advance-only and
|
||||
* always store the left glyph first.
|
||||
*
|
||||
* Use @FT_HAS_KERNING to find out whether a font has data that can be
|
||||
* extracted with `FT_Get_Kerning`.
|
||||
*/
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Get_Kerning( FT_Face face,
|
||||
@ -5222,7 +5174,7 @@ FT_BEGIN_HEADER
|
||||
*/
|
||||
#define FREETYPE_MAJOR 2
|
||||
#define FREETYPE_MINOR 13
|
||||
#define FREETYPE_PATCH 2
|
||||
#define FREETYPE_PATCH 3
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Quick computation of advance widths (specification only).
|
||||
*
|
||||
* Copyright (C) 2008-2023 by
|
||||
* Copyright (C) 2008-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType API for accessing BDF-specific strings (specification).
|
||||
*
|
||||
* Copyright (C) 2002-2023 by
|
||||
* Copyright (C) 2002-2024 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-2023 by
|
||||
* Copyright (C) 2004-2024 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-2023 by
|
||||
* Copyright (C) 2010-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType API for accessing CID font information (specification).
|
||||
*
|
||||
* Copyright (C) 2007-2023 by
|
||||
* Copyright (C) 2007-2024 by
|
||||
* Dereg Clegg and Michael Toftdal.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType's glyph color management (specification).
|
||||
*
|
||||
* Copyright (C) 2018-2023 by
|
||||
* Copyright (C) 2018-2024 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 controlling driver modules (specification only).
|
||||
*
|
||||
* Copyright (C) 2017-2023 by
|
||||
* Copyright (C) 2017-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -817,6 +817,80 @@ FT_BEGIN_HEADER
|
||||
* 2.5
|
||||
*/
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* @property:
|
||||
* spread
|
||||
*
|
||||
* @description:
|
||||
* This property of the 'sdf' and 'bsdf' renderers defines how the signed
|
||||
* distance field (SDF) is represented in the output bitmap. The output
|
||||
* values are calculated as follows, '128 * ( SDF / spread + 1 )', with
|
||||
* the result clamped to the 8-bit range [0..255]. Therefore, 'spread'
|
||||
* is also the maximum euclidean distance from the edge after which the
|
||||
* values are clamped. The spread is specified in pixels with the
|
||||
* default value of 8. For accurate SDF texture mapping (interpolation),
|
||||
* the spread should be large enough to accommodate the target grid unit.
|
||||
*
|
||||
* @example:
|
||||
* The following example code demonstrates how to set the SDF spread
|
||||
* (omitting the error handling).
|
||||
*
|
||||
* ```
|
||||
* FT_Library library;
|
||||
* FT_Int spread = 2;
|
||||
*
|
||||
*
|
||||
* FT_Init_FreeType( &library );
|
||||
*
|
||||
* FT_Property_Set( library, "sdf", "spread", &spread );
|
||||
* ```
|
||||
*
|
||||
* @note:
|
||||
* FreeType has two rasterizers for generating SDF, namely:
|
||||
*
|
||||
* 1. `sdf` for generating SDF directly from glyph's outline, and
|
||||
*
|
||||
* 2. `bsdf` for generating SDF from rasterized bitmaps.
|
||||
*
|
||||
* Depending on the glyph type (i.e., outline or bitmap), one of the two
|
||||
* rasterizers is chosen at runtime and used for generating SDFs. To
|
||||
* force the use of `bsdf` you should render the glyph with any of the
|
||||
* FreeType's other rendering modes (e.g., `FT_RENDER_MODE_NORMAL`) and
|
||||
* then re-render with `FT_RENDER_MODE_SDF`.
|
||||
*
|
||||
* There are some issues with stability and possible failures of the SDF
|
||||
* renderers (specifically `sdf`).
|
||||
*
|
||||
* 1. The `sdf` rasterizer is sensitive to really small features (e.g.,
|
||||
* sharp turns that are less than 1~pixel) and imperfections in the
|
||||
* glyph's outline, causing artifacts in the final output.
|
||||
*
|
||||
* 2. The `sdf` rasterizer has limited support for handling intersecting
|
||||
* contours and *cannot* handle self-intersecting contours whatsoever.
|
||||
* Self-intersection happens when a single connected contour
|
||||
* intersects itself at some point; having these in your font
|
||||
* definitely poses a problem to the rasterizer and cause artifacts,
|
||||
* too.
|
||||
*
|
||||
* 3. Generating SDF for really small glyphs may result in undesirable
|
||||
* output; the pixel grid (which stores distance information) becomes
|
||||
* too coarse.
|
||||
*
|
||||
* 4. Since the output buffer is normalized, precision at smaller spreads
|
||||
* is greater than precision at larger spread values because the
|
||||
* output range of [0..255] gets mapped to a smaller SDF range. A
|
||||
* spread of~2 should be sufficient in most cases.
|
||||
*
|
||||
* Points (1) and (2) can be avoided by using the `bsdf` rasterizer,
|
||||
* which is more stable than the `sdf` rasterizer in general.
|
||||
*
|
||||
* @since:
|
||||
* 2.11
|
||||
*/
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* @property:
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType error codes (specification).
|
||||
*
|
||||
* Copyright (C) 2002-2023 by
|
||||
* Copyright (C) 2002-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 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-2023 by
|
||||
* Copyright (C) 2002-2024 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-2023 by
|
||||
* Copyright (C) 2007-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 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-2023 by
|
||||
* Copyright (C) 2004-2024 by
|
||||
* Masatake YAMATO, Redhat K.K,
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Gzip-compressed stream support.
|
||||
*
|
||||
* Copyright (C) 2002-2023 by
|
||||
* Copyright (C) 2002-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
25
src/3rdparty/freetype/include/freetype/ftimage.h
vendored
25
src/3rdparty/freetype/include/freetype/ftimage.h
vendored
@ -5,7 +5,7 @@
|
||||
* FreeType glyph image formats and default raster interface
|
||||
* (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2023 by
|
||||
* Copyright (C) 1996-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -21,6 +21,11 @@
|
||||
* Note: A 'raster' is simply a scan-line converter, used to render
|
||||
* `FT_Outline`s into `FT_Bitmap`s.
|
||||
*
|
||||
* Note: This file can be used for `STANDALONE_` compilation of raster
|
||||
* (B/W) and smooth (anti-aliased) renderers. Therefore, it must
|
||||
* rely on standard variable types only instead of aliases in
|
||||
* `fttypes.h`.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
@ -318,7 +323,7 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* If bit~2 is set, bits 5-7 contain the drop-out mode (as defined in
|
||||
* the OpenType specification; the value is the same as the argument to
|
||||
* the 'SCANMODE' instruction).
|
||||
* the 'SCANTYPE' instruction).
|
||||
*
|
||||
* Bits 3 and~4 are reserved for internal purposes.
|
||||
*
|
||||
@ -341,12 +346,12 @@ FT_BEGIN_HEADER
|
||||
*/
|
||||
typedef struct FT_Outline_
|
||||
{
|
||||
short n_contours; /* number of contours in glyph */
|
||||
short n_points; /* number of points in the glyph */
|
||||
unsigned short n_contours; /* number of contours in glyph */
|
||||
unsigned short n_points; /* number of points in the glyph */
|
||||
|
||||
FT_Vector* points; /* the outline's points */
|
||||
char* tags; /* the points flags */
|
||||
short* contours; /* the contour end points */
|
||||
unsigned char* tags; /* the points flags */
|
||||
unsigned short* contours; /* the contour end points */
|
||||
|
||||
int flags; /* outline masks */
|
||||
|
||||
@ -356,8 +361,8 @@ FT_BEGIN_HEADER
|
||||
|
||||
/* Following limits must be consistent with */
|
||||
/* FT_Outline.{n_contours,n_points} */
|
||||
#define FT_OUTLINE_CONTOURS_MAX SHRT_MAX
|
||||
#define FT_OUTLINE_POINTS_MAX SHRT_MAX
|
||||
#define FT_OUTLINE_CONTOURS_MAX USHRT_MAX
|
||||
#define FT_OUTLINE_POINTS_MAX USHRT_MAX
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
@ -434,8 +439,8 @@ FT_BEGIN_HEADER
|
||||
* rasterizer; see the `tags` field in @FT_Outline.
|
||||
*
|
||||
* Please refer to the description of the 'SCANTYPE' instruction in the
|
||||
* OpenType specification (in file `ttinst1.doc`) how simple drop-outs,
|
||||
* smart drop-outs, and stubs are defined.
|
||||
* [OpenType specification](https://learn.microsoft.com/en-us/typography/opentype/spec/tt_instructions#scantype)
|
||||
* how simple drop-outs, smart drop-outs, and stubs are defined.
|
||||
*/
|
||||
#define FT_OUTLINE_NONE 0x0
|
||||
#define FT_OUTLINE_OWNER 0x1
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType incremental loading (specification).
|
||||
*
|
||||
* Copyright (C) 2002-2023 by
|
||||
* Copyright (C) 2002-2024 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-2023 by
|
||||
* Copyright (C) 2006-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 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-2023 by
|
||||
* Copyright (C) 2020-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* LZW-compressed stream support.
|
||||
*
|
||||
* Copyright (C) 2004-2023 by
|
||||
* Copyright (C) 2004-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Additional Mac-specific API.
|
||||
*
|
||||
* Copyright (C) 1996-2023 by
|
||||
* Copyright (C) 1996-2024 by
|
||||
* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
33
src/3rdparty/freetype/include/freetype/ftmm.h
vendored
33
src/3rdparty/freetype/include/freetype/ftmm.h
vendored
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType Multiple Master font interface (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2023 by
|
||||
* Copyright (C) 1996-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -19,8 +19,13 @@
|
||||
#ifndef FTMM_H_
|
||||
#define FTMM_H_
|
||||
|
||||
#include <freetype/freetype.h>
|
||||
|
||||
#include <freetype/t1tables.h>
|
||||
#ifdef FREETYPE_H
|
||||
#error "freetype.h of FreeType 1 has been loaded!"
|
||||
#error "Please fix the directory search order for header files"
|
||||
#error "so that freetype.h of FreeType 2 is found first."
|
||||
#endif
|
||||
|
||||
|
||||
FT_BEGIN_HEADER
|
||||
@ -53,6 +58,30 @@ FT_BEGIN_HEADER
|
||||
*/
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* @enum:
|
||||
* T1_MAX_MM_XXX
|
||||
*
|
||||
* @description:
|
||||
* Multiple Masters limits as defined in their specifications.
|
||||
*
|
||||
* @values:
|
||||
* T1_MAX_MM_AXIS ::
|
||||
* The maximum number of Multiple Masters axes.
|
||||
*
|
||||
* T1_MAX_MM_DESIGNS ::
|
||||
* The maximum number of Multiple Masters designs.
|
||||
*
|
||||
* T1_MAX_MM_MAP_POINTS ::
|
||||
* The maximum number of elements in a design map.
|
||||
*
|
||||
*/
|
||||
#define T1_MAX_MM_AXIS 4
|
||||
#define T1_MAX_MM_DESIGNS 16
|
||||
#define T1_MAX_MM_MAP_POINTS 20
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* @struct:
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType modules public interface (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2023 by
|
||||
* Copyright (C) 1996-2024 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-2023 by
|
||||
* Copyright (C) 2001-2024 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-2023 by
|
||||
* Copyright (C) 2004-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -112,7 +112,7 @@ FT_BEGIN_HEADER
|
||||
* Degenerate contours, segments, and Bezier arcs may be reported. In
|
||||
* most cases, it is best to filter these out before using the outline
|
||||
* for stroking or other path modification purposes (which may cause
|
||||
* degenerate segments to become non-degenrate and visible, like when
|
||||
* degenerate segments to become non-degenerate and visible, like when
|
||||
* stroke caps are used or the path is otherwise outset). Some glyph
|
||||
* outlines may contain deliberate degenerate single points for mark
|
||||
* attachement.
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType API for possible FT_Parameter tags (specification only).
|
||||
*
|
||||
* Copyright (C) 2017-2023 by
|
||||
* Copyright (C) 2017-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType API for accessing PFR-specific data (specification only).
|
||||
*
|
||||
* Copyright (C) 2002-2023 by
|
||||
* Copyright (C) 2002-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 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-2023 by
|
||||
* Copyright (C) 2002-2024 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-2023 by
|
||||
* Copyright (C) 2000-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 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-2023 by
|
||||
* Copyright (C) 2001-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 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-2023 by
|
||||
* Copyright (C) 2003-2024 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 'autohint' module-specific interface (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2023 by
|
||||
* Copyright (C) 1996-2024 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-2023 by
|
||||
* Copyright (C) 2017-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -248,10 +248,10 @@ FT_BEGIN_HEADER
|
||||
FT_Byte num_family_blues;
|
||||
FT_Byte num_family_other_blues;
|
||||
|
||||
FT_Pos blue_values[14];
|
||||
FT_Pos other_blues[10];
|
||||
FT_Pos family_blues[14];
|
||||
FT_Pos family_other_blues[10];
|
||||
FT_Fixed blue_values[14];
|
||||
FT_Fixed other_blues[10];
|
||||
FT_Fixed family_blues[14];
|
||||
FT_Fixed family_other_blues[10];
|
||||
|
||||
FT_Fixed blue_scale;
|
||||
FT_Pos blue_shift;
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Compiler-specific macro definitions used internally by FreeType.
|
||||
*
|
||||
* Copyright (C) 2020-2023 by
|
||||
* Copyright (C) 2020-2024 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 @@
|
||||
*
|
||||
* Arithmetic computations (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2023 by
|
||||
* Copyright (C) 1996-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -415,7 +415,7 @@ FT_BEGIN_HEADER
|
||||
|
||||
#define FT_MSB( x ) ( 31 - _CountLeadingZeros( x ) )
|
||||
|
||||
#elif defined( _M_ARM64 ) || defined( _M_ARM )
|
||||
#elif defined( _M_ARM64 ) || defined( _M_ARM ) || defined( _M_ARM64EC )
|
||||
|
||||
#include <intrin.h>
|
||||
#pragma intrinsic( _CountLeadingZeros )
|
||||
@ -455,6 +455,12 @@ FT_BEGIN_HEADER
|
||||
|
||||
#define FT_MSB( x ) FT_MSB_i386( x )
|
||||
|
||||
#elif defined( __SunOS_5_11 )
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#define FT_MSB( x ) ( fls( x ) - 1 )
|
||||
|
||||
#elif defined( __DECC ) || defined( __DECCXX )
|
||||
|
||||
#include <builtins.h>
|
||||
@ -489,8 +495,6 @@ FT_BEGIN_HEADER
|
||||
FT_Fixed y );
|
||||
|
||||
|
||||
#if 0
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* @function:
|
||||
@ -507,12 +511,11 @@ FT_BEGIN_HEADER
|
||||
* The result of 'sqrt(x)'.
|
||||
*
|
||||
* @note:
|
||||
* This function is not very fast.
|
||||
* This function is slow and should be avoided. Consider @FT_Hypot or
|
||||
* @FT_Vector_NormLen instead.
|
||||
*/
|
||||
FT_BASE( FT_Int32 )
|
||||
FT_SqrtFixed( FT_Int32 x );
|
||||
|
||||
#endif /* 0 */
|
||||
FT_BASE( FT_UInt32 )
|
||||
FT_SqrtFixed( FT_UInt32 x );
|
||||
|
||||
|
||||
#define INT_TO_F26DOT6( x ) ( (FT_Long)(x) * 64 ) /* << 6 */
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Debugging and logging component (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2023 by
|
||||
* Copyright (C) 1996-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 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-2023 by
|
||||
* Copyright (C) 2002-2024 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 memory management macros (specification).
|
||||
*
|
||||
* Copyright (C) 1996-2023 by
|
||||
* Copyright (C) 1996-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -372,7 +372,10 @@ extern "C++"
|
||||
FT_MEM_SET_ERROR( FT_MEM_STRDUP( dst, str ) )
|
||||
|
||||
#define FT_MEM_DUP( dst, address, size ) \
|
||||
(dst) = ft_mem_dup( memory, (address), (FT_ULong)(size), &error )
|
||||
FT_ASSIGNP_INNER( dst, ft_mem_dup( memory, \
|
||||
(address), \
|
||||
(FT_ULong)(size), \
|
||||
&error ) )
|
||||
|
||||
#define FT_DUP( dst, address, size ) \
|
||||
FT_MEM_SET_ERROR( FT_MEM_DUP( dst, address, size ) )
|
||||
|
@ -5,7 +5,7 @@
|
||||
* OpenType Variations type definitions for internal use
|
||||
* with the multi-masters service (specification).
|
||||
*
|
||||
* Copyright (C) 2022-2023 by
|
||||
* Copyright (C) 2022-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -604,12 +604,6 @@ FT_BEGIN_HEADER
|
||||
#define FT_FACE_MEMORY( x ) FT_FACE( x )->memory
|
||||
#define FT_FACE_STREAM( x ) FT_FACE( x )->stream
|
||||
|
||||
#define FT_SIZE_FACE( x ) FT_SIZE( x )->face
|
||||
#define FT_SLOT_FACE( x ) FT_SLOT( x )->face
|
||||
|
||||
#define FT_FACE_SLOT( x ) FT_FACE( x )->glyph
|
||||
#define FT_FACE_SIZE( x ) FT_FACE( x )->size
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Get and set properties of PostScript drivers (specification).
|
||||
*
|
||||
* Copyright (C) 2017-2023 by
|
||||
* Copyright (C) 2017-2024 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-2023 by
|
||||
* Copyright (C) 2004-2024 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-2023 by
|
||||
* Copyright (C) 2003-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 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-2023 by
|
||||
* Copyright (C) 2002-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -64,6 +64,7 @@ FT_TRACE_DEF( ttbdf ) /* TrueType embedded BDF (ttbdf.c) */
|
||||
FT_TRACE_DEF( ttcmap ) /* charmap handler (ttcmap.c) */
|
||||
FT_TRACE_DEF( ttcolr ) /* glyph layer table (ttcolr.c) */
|
||||
FT_TRACE_DEF( ttcpal ) /* color palette table (ttcpal.c) */
|
||||
FT_TRACE_DEF( ttgpos ) /* GPOS handler (ttgpos.c) */
|
||||
FT_TRACE_DEF( ttsvg ) /* OpenType SVG table (ttsvg.c) */
|
||||
FT_TRACE_DEF( ttkern ) /* kerning handler (ttkern.c) */
|
||||
FT_TRACE_DEF( ttload ) /* basic TrueType tables (ttload.c) */
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* FreeType validation support (specification).
|
||||
*
|
||||
* Copyright (C) 2004-2023 by
|
||||
* Copyright (C) 2004-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -225,6 +225,7 @@ FT_BEGIN_HEADER
|
||||
|
||||
typedef enum T1_FieldLocation_
|
||||
{
|
||||
T1_FIELD_LOCATION_NONE = 0,
|
||||
T1_FIELD_LOCATION_CID_INFO,
|
||||
T1_FIELD_LOCATION_FONT_DICT,
|
||||
T1_FIELD_LOCATION_FONT_EXTRA,
|
||||
@ -249,6 +250,7 @@ FT_BEGIN_HEADER
|
||||
/* structure type used to model object fields */
|
||||
typedef struct T1_FieldRec_
|
||||
{
|
||||
FT_UInt len; /* field identifier length */
|
||||
const char* ident; /* field identifier */
|
||||
T1_FieldLocation location;
|
||||
T1_FieldType type; /* type of field */
|
||||
@ -273,8 +275,9 @@ FT_BEGIN_HEADER
|
||||
|
||||
#define T1_NEW_SIMPLE_FIELD( _ident, _type, _fname, _dict ) \
|
||||
{ \
|
||||
sizeof ( _ident ) - 1, \
|
||||
_ident, T1CODE, _type, \
|
||||
0, \
|
||||
NULL, \
|
||||
FT_FIELD_OFFSET( _fname ), \
|
||||
FT_FIELD_SIZE( _fname ), \
|
||||
0, 0, \
|
||||
@ -283,6 +286,7 @@ FT_BEGIN_HEADER
|
||||
|
||||
#define T1_NEW_CALLBACK_FIELD( _ident, _reader, _dict ) \
|
||||
{ \
|
||||
sizeof ( _ident ) - 1, \
|
||||
_ident, T1CODE, T1_FIELD_TYPE_CALLBACK, \
|
||||
(T1_Field_ParseFunc)_reader, \
|
||||
0, 0, \
|
||||
@ -292,8 +296,9 @@ FT_BEGIN_HEADER
|
||||
|
||||
#define T1_NEW_TABLE_FIELD( _ident, _type, _fname, _max, _dict ) \
|
||||
{ \
|
||||
sizeof ( _ident ) - 1, \
|
||||
_ident, T1CODE, _type, \
|
||||
0, \
|
||||
NULL, \
|
||||
FT_FIELD_OFFSET( _fname ), \
|
||||
FT_FIELD_SIZE_DELTA( _fname ), \
|
||||
_max, \
|
||||
@ -303,8 +308,9 @@ FT_BEGIN_HEADER
|
||||
|
||||
#define T1_NEW_TABLE_FIELD2( _ident, _type, _fname, _max, _dict ) \
|
||||
{ \
|
||||
sizeof ( _ident ) - 1, \
|
||||
_ident, T1CODE, _type, \
|
||||
0, \
|
||||
NULL, \
|
||||
FT_FIELD_OFFSET( _fname ), \
|
||||
FT_FIELD_SIZE_DELTA( _fname ), \
|
||||
_max, 0, \
|
||||
@ -354,6 +360,13 @@ FT_BEGIN_HEADER
|
||||
#define T1_FIELD_CALLBACK( _ident, _name, _dict ) \
|
||||
T1_NEW_CALLBACK_FIELD( _ident, _name, _dict )
|
||||
|
||||
#define T1_FIELD_ZERO \
|
||||
{ \
|
||||
0, \
|
||||
NULL, T1_FIELD_LOCATION_NONE, T1_FIELD_TYPE_NONE, \
|
||||
NULL, 0, 0, 0, 0, 0 \
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
|
@ -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-2023 by
|
||||
* Copyright (C) 2001-2024 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-2023 by
|
||||
* Copyright (C) 2003-2024 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-2023 by
|
||||
* Copyright (C) 2017-2024 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-2023 by
|
||||
* Copyright (C) 2007-2024 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-2023 by
|
||||
* Copyright (C) 2003-2024 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-2023 by
|
||||
* Copyright (C) 2003-2024 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-2023 by
|
||||
* Copyright (C) 2004-2024 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-2023 by
|
||||
* Copyright (C) 2006-2024 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-2023 by
|
||||
* Copyright (C) 2016-2024 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 Multiple Masters and GX var services (specification).
|
||||
*
|
||||
* Copyright (C) 2003-2023 by
|
||||
* Copyright (C) 2003-2024 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-2023 by
|
||||
* Copyright (C) 2004-2024 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-2023 by
|
||||
* Copyright (C) 2003-2024 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-2023 by
|
||||
* Copyright (C) 2003-2024 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-2023 by
|
||||
* Copyright (C) 2012-2024 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-2023 by
|
||||
* Copyright (C) 2003-2024 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-2023 by
|
||||
* Copyright (C) 2003-2024 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-2023 by
|
||||
* Copyright (C) 2003-2024 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-2023 by
|
||||
* Copyright (C) 2003-2024 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-2023 by
|
||||
* Copyright (C) 2006-2024 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-2023 by
|
||||
* Copyright (C) 2007-2024 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-2023 by
|
||||
* Copyright (C) 2003-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -924,6 +924,7 @@ FT_BEGIN_HEADER
|
||||
/* this field was called `load_kerning' up to version 2.1.10 */
|
||||
TT_Load_Table_Func load_kern;
|
||||
|
||||
TT_Load_Table_Func load_gpos;
|
||||
TT_Load_Table_Func load_gasp;
|
||||
TT_Load_Table_Func load_pclt;
|
||||
|
||||
@ -944,6 +945,8 @@ FT_BEGIN_HEADER
|
||||
|
||||
/* new elements introduced after version 2.1.10 */
|
||||
|
||||
TT_Face_GetKerningFunc get_gpos_kerning;
|
||||
|
||||
/* load the font directory, i.e., the offset table and */
|
||||
/* the table directory */
|
||||
TT_Load_Table_Func load_font_dir;
|
||||
@ -1002,6 +1005,7 @@ FT_BEGIN_HEADER
|
||||
load_name_, \
|
||||
free_name_, \
|
||||
load_kern_, \
|
||||
load_gpos_, \
|
||||
load_gasp_, \
|
||||
load_pclt_, \
|
||||
load_bhed_, \
|
||||
@ -1009,6 +1013,7 @@ FT_BEGIN_HEADER
|
||||
get_psname_, \
|
||||
free_psnames_, \
|
||||
get_kerning_, \
|
||||
get_gpos_kerning_, \
|
||||
load_font_dir_, \
|
||||
load_hmtx_, \
|
||||
load_eblc_, \
|
||||
@ -1050,6 +1055,7 @@ FT_BEGIN_HEADER
|
||||
load_name_, \
|
||||
free_name_, \
|
||||
load_kern_, \
|
||||
load_gpos_, \
|
||||
load_gasp_, \
|
||||
load_pclt_, \
|
||||
load_bhed_, \
|
||||
@ -1057,6 +1063,7 @@ FT_BEGIN_HEADER
|
||||
get_psname_, \
|
||||
free_psnames_, \
|
||||
get_kerning_, \
|
||||
get_gpos_kerning_, \
|
||||
load_font_dir_, \
|
||||
load_hmtx_, \
|
||||
load_eblc_, \
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Interface of ot-svg module (specification only).
|
||||
*
|
||||
* Copyright (C) 2022-2023 by
|
||||
* Copyright (C) 2022-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -21,7 +21,7 @@
|
||||
#define T1TYPES_H_
|
||||
|
||||
|
||||
#include <freetype/t1tables.h>
|
||||
#include <freetype/ftmm.h>
|
||||
#include <freetype/internal/pshints.h>
|
||||
#include <freetype/internal/ftserv.h>
|
||||
#include <freetype/internal/fthash.h>
|
||||
@ -137,6 +137,54 @@ FT_BEGIN_HEADER
|
||||
} CID_SubrsRec, *CID_Subrs;
|
||||
|
||||
|
||||
/* this structure is used to store the BlendDesignMap entry for an axis */
|
||||
typedef struct PS_DesignMap_
|
||||
{
|
||||
FT_Byte num_points;
|
||||
FT_Long* design_points;
|
||||
FT_Fixed* blend_points;
|
||||
|
||||
} PS_DesignMapRec, *PS_DesignMap;
|
||||
|
||||
/* backward compatible definition */
|
||||
typedef PS_DesignMapRec T1_DesignMap;
|
||||
|
||||
|
||||
typedef struct PS_BlendRec_
|
||||
{
|
||||
FT_UInt num_designs;
|
||||
FT_UInt num_axis;
|
||||
|
||||
FT_String* axis_names[T1_MAX_MM_AXIS];
|
||||
FT_Fixed* design_pos[T1_MAX_MM_DESIGNS];
|
||||
PS_DesignMapRec design_map[T1_MAX_MM_AXIS];
|
||||
|
||||
FT_Fixed* weight_vector;
|
||||
FT_Fixed* default_weight_vector;
|
||||
|
||||
PS_FontInfo font_infos[T1_MAX_MM_DESIGNS + 1];
|
||||
PS_Private privates [T1_MAX_MM_DESIGNS + 1];
|
||||
|
||||
FT_ULong blend_bitflags;
|
||||
|
||||
FT_BBox* bboxes [T1_MAX_MM_DESIGNS + 1];
|
||||
|
||||
/* since 2.3.0 */
|
||||
|
||||
/* undocumented, optional: the default design instance; */
|
||||
/* corresponds to default_weight_vector -- */
|
||||
/* num_default_design_vector == 0 means it is not present */
|
||||
/* in the font and associated metrics files */
|
||||
FT_UInt default_design_vector[T1_MAX_MM_DESIGNS];
|
||||
FT_UInt num_default_design_vector;
|
||||
|
||||
} PS_BlendRec, *PS_Blend;
|
||||
|
||||
|
||||
/* backward compatible definition */
|
||||
typedef PS_BlendRec T1_Blend;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
|
@ -5,7 +5,7 @@
|
||||
* Basic SFNT/TrueType type definitions and interface (specification
|
||||
* only).
|
||||
*
|
||||
* Copyright (C) 1996-2023 by
|
||||
* Copyright (C) 1996-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -24,6 +24,7 @@
|
||||
#include <freetype/tttables.h>
|
||||
#include <freetype/internal/ftobjs.h>
|
||||
#include <freetype/ftcolor.h>
|
||||
#include "freetype/fttypes.h"
|
||||
|
||||
#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
|
||||
#include <freetype/ftmm.h>
|
||||
@ -1581,6 +1582,11 @@ 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 */
|
||||
@ -1649,9 +1655,9 @@ FT_BEGIN_HEADER
|
||||
{
|
||||
FT_Memory memory;
|
||||
FT_UShort max_points;
|
||||
FT_Short max_contours;
|
||||
FT_UShort max_contours;
|
||||
FT_UShort n_points; /* number of points in zone */
|
||||
FT_Short n_contours; /* number of contours */
|
||||
FT_UShort n_contours; /* number of contours */
|
||||
|
||||
FT_Vector* org; /* original point coordinates */
|
||||
FT_Vector* cur; /* current point coordinates */
|
||||
|
@ -5,7 +5,7 @@
|
||||
* Basic WOFF/WOFF2 type definitions and interface (specification
|
||||
* only).
|
||||
*
|
||||
* Copyright (C) 1996-2023 by
|
||||
* Copyright (C) 1996-2024 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 @@
|
||||
*
|
||||
* Interface for OT-SVG support related things (specification).
|
||||
*
|
||||
* Copyright (C) 2022-2023 by
|
||||
* Copyright (C) 2022-2024 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-2023 by
|
||||
* Copyright (C) 1996-2024 by
|
||||
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
*
|
||||
* This file is part of the FreeType project, and may only be used,
|
||||
@ -269,64 +269,6 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
|
||||
|
||||
/* maximum number of Multiple Masters designs, as defined in the spec */
|
||||
#define T1_MAX_MM_DESIGNS 16
|
||||
|
||||
/* maximum number of Multiple Masters axes, as defined in the spec */
|
||||
#define T1_MAX_MM_AXIS 4
|
||||
|
||||
/* maximum number of elements in a design map */
|
||||
#define T1_MAX_MM_MAP_POINTS 20
|
||||
|
||||
|
||||
/* this structure is used to store the BlendDesignMap entry for an axis */
|
||||
typedef struct PS_DesignMap_
|
||||
{
|
||||
FT_Byte num_points;
|
||||
FT_Long* design_points;
|
||||
FT_Fixed* blend_points;
|
||||
|
||||
} PS_DesignMapRec, *PS_DesignMap;
|
||||
|
||||
/* backward compatible definition */
|
||||
typedef PS_DesignMapRec T1_DesignMap;
|
||||
|
||||
|
||||
typedef struct PS_BlendRec_
|
||||
{
|
||||
FT_UInt num_designs;
|
||||
FT_UInt num_axis;
|
||||
|
||||
FT_String* axis_names[T1_MAX_MM_AXIS];
|
||||
FT_Fixed* design_pos[T1_MAX_MM_DESIGNS];
|
||||
PS_DesignMapRec design_map[T1_MAX_MM_AXIS];
|
||||
|
||||
FT_Fixed* weight_vector;
|
||||
FT_Fixed* default_weight_vector;
|
||||
|
||||
PS_FontInfo font_infos[T1_MAX_MM_DESIGNS + 1];
|
||||
PS_Private privates [T1_MAX_MM_DESIGNS + 1];
|
||||
|
||||
FT_ULong blend_bitflags;
|
||||
|
||||
FT_BBox* bboxes [T1_MAX_MM_DESIGNS + 1];
|
||||
|
||||
/* since 2.3.0 */
|
||||
|
||||
/* undocumented, optional: the default design instance; */
|
||||
/* corresponds to default_weight_vector -- */
|
||||
/* num_default_design_vector == 0 means it is not present */
|
||||
/* in the font and associated metrics files */
|
||||
FT_UInt default_design_vector[T1_MAX_MM_DESIGNS];
|
||||
FT_UInt num_default_design_vector;
|
||||
|
||||
} PS_BlendRec, *PS_Blend;
|
||||
|
||||
|
||||
/* backward compatible definition */
|
||||
typedef PS_BlendRec T1_Blend;
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* @struct:
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user