Update FreeType to 2.13.3

This commit is contained in:
Pāvels Nadtočajevs
2025-03-03 08:17:09 +02:00
parent fad2e6ded9
commit c5011d860d
421 changed files with 3108 additions and 3270 deletions

View File

@ -326,7 +326,7 @@ for UI.
## freetype ## freetype
- Upstream: https://www.freetype.org - Upstream: https://www.freetype.org
- Version: 2.13.2 (920c5502cc3ddda88f6c7d85ee834ac611bb11cc, 2023) - Version: 2.13.3 (42608f77f20749dd6ddc9e0536788eaad70ea4b5, 2024)
- License: FreeType License (BSD-like) - License: FreeType License (BSD-like)
Files extracted from upstream source: Files extracted from upstream source:

View File

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

View File

@ -4,7 +4,7 @@
* *
* Build macros of the FreeType 2 library. * Build macros of the FreeType 2 library.
* *
* Copyright (C) 1996-2023 by * Copyright (C) 1996-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
* *
* User-selectable configuration macros (specification only). * User-selectable configuration macros (specification only).
* *
* Copyright (C) 1996-2023 by * Copyright (C) 1996-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,
@ -757,6 +757,22 @@ FT_BEGIN_HEADER
#endif #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 */
/*************************************************************************/ /*************************************************************************/
/*************************************************************************/ /*************************************************************************/
/**** ****/ /**** ****/

View File

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

View File

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

View File

@ -4,7 +4,7 @@
* *
* Mac/OS X support configuration header. * Mac/OS X support configuration header.
* *
* Copyright (C) 1996-2023 by * Copyright (C) 1996-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
* *
* Define a set of compiler macros used in public FreeType headers. * Define a set of compiler macros used in public FreeType headers.
* *
* Copyright (C) 2020-2023 by * Copyright (C) 2020-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
* *
* FreeType high-level API and common types (specification only). * FreeType high-level API and common types (specification only).
* *
* Copyright (C) 1996-2023 by * Copyright (C) 1996-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,
@ -1322,9 +1322,13 @@ FT_BEGIN_HEADER
* FT_FACE_FLAG_KERNING :: * FT_FACE_FLAG_KERNING ::
* The face contains kerning information. If set, the kerning distance * The face contains kerning information. If set, the kerning distance
* can be retrieved using the function @FT_Get_Kerning. Otherwise the * can be retrieved using the function @FT_Get_Kerning. Otherwise the
* function always returns the vector (0,0). Note that FreeType * function always returns the vector (0,0).
* doesn't handle kerning data from the SFNT 'GPOS' table (as present *
* in many OpenType fonts). * 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 :: * FT_FACE_FLAG_FAST_GLYPHS ::
* THIS FLAG IS DEPRECATED. DO NOT USE OR TEST IT. * 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. * pixels and use the @FT_PIXEL_MODE_LCD_V mode.
* *
* FT_RENDER_MODE_SDF :: * FT_RENDER_MODE_SDF ::
* This mode corresponds to 8-bit, single-channel signed distance field * The positive (unsigned) 8-bit bitmap values can be converted to the
* (SDF) bitmaps. Each pixel in the SDF grid is the value from the * single-channel signed distance field (SDF) by subtracting 128, with
* pixel's position to the nearest glyph's outline. The distances are * the positive and negative results corresponding to the inside and
* calculated from the center of the pixel and are positive if they are * the outside of a glyph contour, respectively. The distance units are
* filled by the outline (i.e., inside the outline) and negative * arbitrarily determined by an adjustable @spread property.
* otherwise. Check the note below on how to convert the output values
* to usable data.
* *
* @note: * @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 * Embedded bitmaps often have a different pixel mode like
* @FT_PIXEL_MODE_MONO. You can use @FT_Bitmap_Convert to transform them * @FT_PIXEL_MODE_MONO. You can use @FT_Bitmap_Convert to transform them
* into 8-bit pixmaps. * 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_ typedef enum FT_Render_Mode_
{ {
@ -4058,9 +3993,26 @@ FT_BEGIN_HEADER
* out of the scope of this API function -- they can be implemented * out of the scope of this API function -- they can be implemented
* through format-specific interfaces. * through format-specific interfaces.
* *
* Kerning for OpenType fonts implemented in a 'GPOS' table is not * Note that, for TrueType fonts only, this can extract data from both
* supported; use @FT_HAS_KERNING to find out whether a font has data * the 'kern' table and the basic, pair-wise kerning feature from the
* that can be extracted with `FT_Get_Kerning`. * 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_EXPORT( FT_Error )
FT_Get_Kerning( FT_Face face, FT_Get_Kerning( FT_Face face,
@ -5222,7 +5174,7 @@ FT_BEGIN_HEADER
*/ */
#define FREETYPE_MAJOR 2 #define FREETYPE_MAJOR 2
#define FREETYPE_MINOR 13 #define FREETYPE_MINOR 13
#define FREETYPE_PATCH 2 #define FREETYPE_PATCH 3
/************************************************************************** /**************************************************************************

View File

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

View File

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

View File

@ -4,7 +4,7 @@
* *
* FreeType API for accessing BDF-specific strings (specification). * 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. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
* *
* FreeType utility functions for bitmaps (specification). * FreeType utility functions for bitmaps (specification).
* *
* Copyright (C) 2004-2023 by * Copyright (C) 2004-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

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

View File

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

View File

@ -4,7 +4,7 @@
* *
* FreeType API for accessing CID font information (specification). * FreeType API for accessing CID font information (specification).
* *
* Copyright (C) 2007-2023 by * Copyright (C) 2007-2024 by
* Dereg Clegg and Michael Toftdal. * Dereg Clegg and Michael Toftdal.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
* *
* FreeType's glyph color management (specification). * FreeType's glyph color management (specification).
* *
* Copyright (C) 2018-2023 by * Copyright (C) 2018-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
* *
* FreeType API for controlling driver modules (specification only). * 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. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,
@ -817,6 +817,80 @@ FT_BEGIN_HEADER
* 2.5 * 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: * @property:

View File

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

View File

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

View File

@ -4,7 +4,7 @@
* *
* Support functions for font formats. * Support functions for font formats.
* *
* Copyright (C) 2002-2023 by * Copyright (C) 2002-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
* *
* Access of TrueType's 'gasp' table (specification). * Access of TrueType's 'gasp' table (specification).
* *
* Copyright (C) 2007-2023 by * Copyright (C) 2007-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
* *
* FreeType convenience functions to handle glyphs (specification). * FreeType convenience functions to handle glyphs (specification).
* *
* Copyright (C) 1996-2023 by * Copyright (C) 1996-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
* *
* FreeType API for validating TrueTypeGX/AAT tables (specification). * FreeType API for validating TrueTypeGX/AAT tables (specification).
* *
* Copyright (C) 2004-2023 by * Copyright (C) 2004-2024 by
* Masatake YAMATO, Redhat K.K, * Masatake YAMATO, Redhat K.K,
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *

View File

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

View File

@ -5,7 +5,7 @@
* FreeType glyph image formats and default raster interface * FreeType glyph image formats and default raster interface
* (specification). * (specification).
* *
* Copyright (C) 1996-2023 by * Copyright (C) 1996-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,
@ -21,6 +21,11 @@
* Note: A 'raster' is simply a scan-line converter, used to render * Note: A 'raster' is simply a scan-line converter, used to render
* `FT_Outline`s into `FT_Bitmap`s. * `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 * 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 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. * Bits 3 and~4 are reserved for internal purposes.
* *
@ -341,12 +346,12 @@ FT_BEGIN_HEADER
*/ */
typedef struct FT_Outline_ typedef struct FT_Outline_
{ {
short n_contours; /* number of contours in glyph */ unsigned short n_contours; /* number of contours in glyph */
short n_points; /* number of points in the glyph */ unsigned short n_points; /* number of points in the glyph */
FT_Vector* points; /* the outline's points */ FT_Vector* points; /* the outline's points */
char* tags; /* the points flags */ unsigned char* tags; /* the points flags */
short* contours; /* the contour end points */ unsigned short* contours; /* the contour end points */
int flags; /* outline masks */ int flags; /* outline masks */
@ -356,8 +361,8 @@ FT_BEGIN_HEADER
/* Following limits must be consistent with */ /* Following limits must be consistent with */
/* FT_Outline.{n_contours,n_points} */ /* FT_Outline.{n_contours,n_points} */
#define FT_OUTLINE_CONTOURS_MAX SHRT_MAX #define FT_OUTLINE_CONTOURS_MAX USHRT_MAX
#define FT_OUTLINE_POINTS_MAX SHRT_MAX #define FT_OUTLINE_POINTS_MAX USHRT_MAX
/************************************************************************** /**************************************************************************
@ -434,8 +439,8 @@ FT_BEGIN_HEADER
* rasterizer; see the `tags` field in @FT_Outline. * rasterizer; see the `tags` field in @FT_Outline.
* *
* Please refer to the description of the 'SCANTYPE' instruction in the * Please refer to the description of the 'SCANTYPE' instruction in the
* OpenType specification (in file `ttinst1.doc`) how simple drop-outs, * [OpenType specification](https://learn.microsoft.com/en-us/typography/opentype/spec/tt_instructions#scantype)
* smart drop-outs, and stubs are defined. * how simple drop-outs, smart drop-outs, and stubs are defined.
*/ */
#define FT_OUTLINE_NONE 0x0 #define FT_OUTLINE_NONE 0x0
#define FT_OUTLINE_OWNER 0x1 #define FT_OUTLINE_OWNER 0x1

View File

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

View File

@ -5,7 +5,7 @@
* FreeType API for color filtering of subpixel bitmap glyphs * FreeType API for color filtering of subpixel bitmap glyphs
* (specification). * (specification).
* *
* Copyright (C) 2006-2023 by * Copyright (C) 2006-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

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

View File

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

View File

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

View File

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

View File

@ -4,7 +4,7 @@
* *
* FreeType Multiple Master font interface (specification). * FreeType Multiple Master font interface (specification).
* *
* Copyright (C) 1996-2023 by * Copyright (C) 1996-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,
@ -19,8 +19,13 @@
#ifndef FTMM_H_ #ifndef FTMM_H_
#define 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 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: * @struct:

View File

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

View File

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

View File

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

View File

@ -5,7 +5,7 @@
* Support for the FT_Outline type used to store glyph shapes of * Support for the FT_Outline type used to store glyph shapes of
* most scalable font formats (specification). * most scalable font formats (specification).
* *
* Copyright (C) 1996-2023 by * Copyright (C) 1996-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,
@ -112,7 +112,7 @@ FT_BEGIN_HEADER
* Degenerate contours, segments, and Bezier arcs may be reported. In * Degenerate contours, segments, and Bezier arcs may be reported. In
* most cases, it is best to filter these out before using the outline * most cases, it is best to filter these out before using the outline
* for stroking or other path modification purposes (which may cause * 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 * stroke caps are used or the path is otherwise outset). Some glyph
* outlines may contain deliberate degenerate single points for mark * outlines may contain deliberate degenerate single points for mark
* attachement. * attachement.

View File

@ -4,7 +4,7 @@
* *
* FreeType API for possible FT_Parameter tags (specification only). * FreeType API for possible FT_Parameter tags (specification only).
* *
* Copyright (C) 2017-2023 by * Copyright (C) 2017-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

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

View File

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

View File

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

View File

@ -7,7 +7,7 @@
* *
* This is _not_ used to retrieve glyph names! * 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. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -4,7 +4,7 @@
* *
* FreeType API for accessing Windows fnt-specific data. * 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. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

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

View File

@ -4,7 +4,7 @@
* *
* Basic OpenType/CFF object type definitions (specification). * Basic OpenType/CFF object type definitions (specification).
* *
* Copyright (C) 2017-2023 by * Copyright (C) 2017-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

@ -5,7 +5,7 @@
* Basic OpenType/CFF type definitions and interface (specification * Basic OpenType/CFF type definitions and interface (specification
* only). * only).
* *
* Copyright (C) 1996-2023 by * Copyright (C) 1996-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,
@ -248,10 +248,10 @@ FT_BEGIN_HEADER
FT_Byte num_family_blues; FT_Byte num_family_blues;
FT_Byte num_family_other_blues; FT_Byte num_family_other_blues;
FT_Pos blue_values[14]; FT_Fixed blue_values[14];
FT_Pos other_blues[10]; FT_Fixed other_blues[10];
FT_Pos family_blues[14]; FT_Fixed family_blues[14];
FT_Pos family_other_blues[10]; FT_Fixed family_other_blues[10];
FT_Fixed blue_scale; FT_Fixed blue_scale;
FT_Pos blue_shift; FT_Pos blue_shift;

View File

@ -4,7 +4,7 @@
* *
* Compiler-specific macro definitions used internally by FreeType. * 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. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
* *
* Arithmetic computations (specification). * Arithmetic computations (specification).
* *
* Copyright (C) 1996-2023 by * Copyright (C) 1996-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,
@ -415,7 +415,7 @@ FT_BEGIN_HEADER
#define FT_MSB( x ) ( 31 - _CountLeadingZeros( x ) ) #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> #include <intrin.h>
#pragma intrinsic( _CountLeadingZeros ) #pragma intrinsic( _CountLeadingZeros )
@ -455,6 +455,12 @@ FT_BEGIN_HEADER
#define FT_MSB( x ) FT_MSB_i386( x ) #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 ) #elif defined( __DECC ) || defined( __DECCXX )
#include <builtins.h> #include <builtins.h>
@ -489,8 +495,6 @@ FT_BEGIN_HEADER
FT_Fixed y ); FT_Fixed y );
#if 0
/************************************************************************** /**************************************************************************
* *
* @function: * @function:
@ -507,12 +511,11 @@ FT_BEGIN_HEADER
* The result of 'sqrt(x)'. * The result of 'sqrt(x)'.
* *
* @note: * @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_BASE( FT_UInt32 )
FT_SqrtFixed( FT_Int32 x ); FT_SqrtFixed( FT_UInt32 x );
#endif /* 0 */
#define INT_TO_F26DOT6( x ) ( (FT_Long)(x) * 64 ) /* << 6 */ #define INT_TO_F26DOT6( x ) ( (FT_Long)(x) * 64 ) /* << 6 */

View File

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

View File

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

View File

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

View File

@ -4,7 +4,7 @@
* *
* The FreeType memory management macros (specification). * The FreeType memory management macros (specification).
* *
* Copyright (C) 1996-2023 by * Copyright (C) 1996-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg * David Turner, Robert Wilhelm, and Werner Lemberg
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,
@ -372,7 +372,10 @@ extern "C++"
FT_MEM_SET_ERROR( FT_MEM_STRDUP( dst, str ) ) FT_MEM_SET_ERROR( FT_MEM_STRDUP( dst, str ) )
#define FT_MEM_DUP( dst, address, size ) \ #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 ) \ #define FT_DUP( dst, address, size ) \
FT_MEM_SET_ERROR( FT_MEM_DUP( dst, address, size ) ) FT_MEM_SET_ERROR( FT_MEM_DUP( dst, address, size ) )

View File

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

View File

@ -4,7 +4,7 @@
* *
* The FreeType private base classes (specification). * The FreeType private base classes (specification).
* *
* Copyright (C) 1996-2023 by * Copyright (C) 1996-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,
@ -604,12 +604,6 @@ FT_BEGIN_HEADER
#define FT_FACE_MEMORY( x ) FT_FACE( x )->memory #define FT_FACE_MEMORY( x ) FT_FACE( x )->memory
#define FT_FACE_STREAM( x ) FT_FACE( x )->stream #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
/************************************************************************** /**************************************************************************
* *

View File

@ -4,7 +4,7 @@
* *
* Get and set properties of PostScript drivers (specification). * 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. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

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

View File

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

View File

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

View File

@ -4,7 +4,7 @@
* *
* Tracing handling (specification only). * Tracing handling (specification only).
* *
* Copyright (C) 2002-2023 by * Copyright (C) 2002-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,
@ -64,6 +64,7 @@ FT_TRACE_DEF( ttbdf ) /* TrueType embedded BDF (ttbdf.c) */
FT_TRACE_DEF( ttcmap ) /* charmap handler (ttcmap.c) */ FT_TRACE_DEF( ttcmap ) /* charmap handler (ttcmap.c) */
FT_TRACE_DEF( ttcolr ) /* glyph layer table (ttcolr.c) */ FT_TRACE_DEF( ttcolr ) /* glyph layer table (ttcolr.c) */
FT_TRACE_DEF( ttcpal ) /* color palette table (ttcpal.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( ttsvg ) /* OpenType SVG table (ttsvg.c) */
FT_TRACE_DEF( ttkern ) /* kerning handler (ttkern.c) */ FT_TRACE_DEF( ttkern ) /* kerning handler (ttkern.c) */
FT_TRACE_DEF( ttload ) /* basic TrueType tables (ttload.c) */ FT_TRACE_DEF( ttload ) /* basic TrueType tables (ttload.c) */

View File

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

View File

@ -5,7 +5,7 @@
* Auxiliary functions and data structures related to PostScript fonts * Auxiliary functions and data structures related to PostScript fonts
* (specification). * (specification).
* *
* Copyright (C) 1996-2023 by * Copyright (C) 1996-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,
@ -225,6 +225,7 @@ FT_BEGIN_HEADER
typedef enum T1_FieldLocation_ typedef enum T1_FieldLocation_
{ {
T1_FIELD_LOCATION_NONE = 0,
T1_FIELD_LOCATION_CID_INFO, T1_FIELD_LOCATION_CID_INFO,
T1_FIELD_LOCATION_FONT_DICT, T1_FIELD_LOCATION_FONT_DICT,
T1_FIELD_LOCATION_FONT_EXTRA, T1_FIELD_LOCATION_FONT_EXTRA,
@ -249,6 +250,7 @@ FT_BEGIN_HEADER
/* structure type used to model object fields */ /* structure type used to model object fields */
typedef struct T1_FieldRec_ typedef struct T1_FieldRec_
{ {
FT_UInt len; /* field identifier length */
const char* ident; /* field identifier */ const char* ident; /* field identifier */
T1_FieldLocation location; T1_FieldLocation location;
T1_FieldType type; /* type of field */ T1_FieldType type; /* type of field */
@ -273,8 +275,9 @@ FT_BEGIN_HEADER
#define T1_NEW_SIMPLE_FIELD( _ident, _type, _fname, _dict ) \ #define T1_NEW_SIMPLE_FIELD( _ident, _type, _fname, _dict ) \
{ \ { \
sizeof ( _ident ) - 1, \
_ident, T1CODE, _type, \ _ident, T1CODE, _type, \
0, \ NULL, \
FT_FIELD_OFFSET( _fname ), \ FT_FIELD_OFFSET( _fname ), \
FT_FIELD_SIZE( _fname ), \ FT_FIELD_SIZE( _fname ), \
0, 0, \ 0, 0, \
@ -283,6 +286,7 @@ FT_BEGIN_HEADER
#define T1_NEW_CALLBACK_FIELD( _ident, _reader, _dict ) \ #define T1_NEW_CALLBACK_FIELD( _ident, _reader, _dict ) \
{ \ { \
sizeof ( _ident ) - 1, \
_ident, T1CODE, T1_FIELD_TYPE_CALLBACK, \ _ident, T1CODE, T1_FIELD_TYPE_CALLBACK, \
(T1_Field_ParseFunc)_reader, \ (T1_Field_ParseFunc)_reader, \
0, 0, \ 0, 0, \
@ -292,8 +296,9 @@ FT_BEGIN_HEADER
#define T1_NEW_TABLE_FIELD( _ident, _type, _fname, _max, _dict ) \ #define T1_NEW_TABLE_FIELD( _ident, _type, _fname, _max, _dict ) \
{ \ { \
sizeof ( _ident ) - 1, \
_ident, T1CODE, _type, \ _ident, T1CODE, _type, \
0, \ NULL, \
FT_FIELD_OFFSET( _fname ), \ FT_FIELD_OFFSET( _fname ), \
FT_FIELD_SIZE_DELTA( _fname ), \ FT_FIELD_SIZE_DELTA( _fname ), \
_max, \ _max, \
@ -303,8 +308,9 @@ FT_BEGIN_HEADER
#define T1_NEW_TABLE_FIELD2( _ident, _type, _fname, _max, _dict ) \ #define T1_NEW_TABLE_FIELD2( _ident, _type, _fname, _max, _dict ) \
{ \ { \
sizeof ( _ident ) - 1, \
_ident, T1CODE, _type, \ _ident, T1CODE, _type, \
0, \ NULL, \
FT_FIELD_OFFSET( _fname ), \ FT_FIELD_OFFSET( _fname ), \
FT_FIELD_SIZE_DELTA( _fname ), \ FT_FIELD_SIZE_DELTA( _fname ), \
_max, 0, \ _max, 0, \
@ -354,6 +360,13 @@ FT_BEGIN_HEADER
#define T1_FIELD_CALLBACK( _ident, _name, _dict ) \ #define T1_FIELD_CALLBACK( _ident, _name, _dict ) \
T1_NEW_CALLBACK_FIELD( _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 \
}
/*************************************************************************/ /*************************************************************************/
/*************************************************************************/ /*************************************************************************/

View File

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

View File

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

View File

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

View File

@ -4,7 +4,7 @@
* *
* The FreeType CID font services (specification). * The FreeType CID font services (specification).
* *
* Copyright (C) 2007-2023 by * Copyright (C) 2007-2024 by
* Derek Clegg and Michael Toftdal. * Derek Clegg and Michael Toftdal.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

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

View File

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

View File

@ -4,7 +4,7 @@
* *
* FreeType API for validating TrueTypeGX/AAT tables (specification). * FreeType API for validating TrueTypeGX/AAT tables (specification).
* *
* Copyright (C) 2004-2023 by * Copyright (C) 2004-2024 by
* Masatake YAMATO, Red Hat K.K., * Masatake YAMATO, Red Hat K.K.,
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -4,7 +4,7 @@
* *
* The FreeType TrueType/sfnt cmap extra information service. * The FreeType TrueType/sfnt cmap extra information service.
* *
* Copyright (C) 2003-2023 by * Copyright (C) 2003-2024 by
* Masatake YAMATO, Redhat K.K., * Masatake YAMATO, Redhat K.K.,
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *

View File

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

View File

@ -4,7 +4,7 @@
* *
* The FreeType TrueType glyph service. * The FreeType TrueType glyph service.
* *
* Copyright (C) 2007-2023 by * Copyright (C) 2007-2024 by
* David Turner. * David Turner.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

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

View File

@ -4,7 +4,7 @@
* *
* High-level 'sfnt' driver interface (specification). * High-level 'sfnt' driver interface (specification).
* *
* Copyright (C) 1996-2023 by * Copyright (C) 1996-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,
@ -924,6 +924,7 @@ FT_BEGIN_HEADER
/* this field was called `load_kerning' up to version 2.1.10 */ /* this field was called `load_kerning' up to version 2.1.10 */
TT_Load_Table_Func load_kern; TT_Load_Table_Func load_kern;
TT_Load_Table_Func load_gpos;
TT_Load_Table_Func load_gasp; TT_Load_Table_Func load_gasp;
TT_Load_Table_Func load_pclt; TT_Load_Table_Func load_pclt;
@ -944,6 +945,8 @@ FT_BEGIN_HEADER
/* new elements introduced after version 2.1.10 */ /* new elements introduced after version 2.1.10 */
TT_Face_GetKerningFunc get_gpos_kerning;
/* load the font directory, i.e., the offset table and */ /* load the font directory, i.e., the offset table and */
/* the table directory */ /* the table directory */
TT_Load_Table_Func load_font_dir; TT_Load_Table_Func load_font_dir;
@ -1002,6 +1005,7 @@ FT_BEGIN_HEADER
load_name_, \ load_name_, \
free_name_, \ free_name_, \
load_kern_, \ load_kern_, \
load_gpos_, \
load_gasp_, \ load_gasp_, \
load_pclt_, \ load_pclt_, \
load_bhed_, \ load_bhed_, \
@ -1009,6 +1013,7 @@ FT_BEGIN_HEADER
get_psname_, \ get_psname_, \
free_psnames_, \ free_psnames_, \
get_kerning_, \ get_kerning_, \
get_gpos_kerning_, \
load_font_dir_, \ load_font_dir_, \
load_hmtx_, \ load_hmtx_, \
load_eblc_, \ load_eblc_, \
@ -1050,6 +1055,7 @@ FT_BEGIN_HEADER
load_name_, \ load_name_, \
free_name_, \ free_name_, \
load_kern_, \ load_kern_, \
load_gpos_, \
load_gasp_, \ load_gasp_, \
load_pclt_, \ load_pclt_, \
load_bhed_, \ load_bhed_, \
@ -1057,6 +1063,7 @@ FT_BEGIN_HEADER
get_psname_, \ get_psname_, \
free_psnames_, \ free_psnames_, \
get_kerning_, \ get_kerning_, \
get_gpos_kerning_, \
load_font_dir_, \ load_font_dir_, \
load_hmtx_, \ load_hmtx_, \
load_eblc_, \ load_eblc_, \

View File

@ -4,7 +4,7 @@
* *
* Interface of ot-svg module (specification only). * 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. * David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

@ -5,7 +5,7 @@
* Basic Type1/Type2 type definitions and interface (specification * Basic Type1/Type2 type definitions and interface (specification
* only). * only).
* *
* Copyright (C) 1996-2023 by * Copyright (C) 1996-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,
@ -21,7 +21,7 @@
#define T1TYPES_H_ #define T1TYPES_H_
#include <freetype/t1tables.h> #include <freetype/ftmm.h>
#include <freetype/internal/pshints.h> #include <freetype/internal/pshints.h>
#include <freetype/internal/ftserv.h> #include <freetype/internal/ftserv.h>
#include <freetype/internal/fthash.h> #include <freetype/internal/fthash.h>
@ -137,6 +137,54 @@ FT_BEGIN_HEADER
} CID_SubrsRec, *CID_Subrs; } 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;
/*************************************************************************/ /*************************************************************************/
/*************************************************************************/ /*************************************************************************/
/*************************************************************************/ /*************************************************************************/

View File

@ -5,7 +5,7 @@
* Basic SFNT/TrueType type definitions and interface (specification * Basic SFNT/TrueType type definitions and interface (specification
* only). * only).
* *
* Copyright (C) 1996-2023 by * Copyright (C) 1996-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,
@ -24,6 +24,7 @@
#include <freetype/tttables.h> #include <freetype/tttables.h>
#include <freetype/internal/ftobjs.h> #include <freetype/internal/ftobjs.h>
#include <freetype/ftcolor.h> #include <freetype/ftcolor.h>
#include "freetype/fttypes.h"
#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
#include <freetype/ftmm.h> #include <freetype/ftmm.h>
@ -1581,6 +1582,11 @@ FT_BEGIN_HEADER
FT_UInt32 kern_avail_bits; FT_UInt32 kern_avail_bits;
FT_UInt32 kern_order_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 #ifdef TT_CONFIG_OPTION_BDF
TT_BDFRec bdf; TT_BDFRec bdf;
#endif /* TT_CONFIG_OPTION_BDF */ #endif /* TT_CONFIG_OPTION_BDF */
@ -1649,9 +1655,9 @@ FT_BEGIN_HEADER
{ {
FT_Memory memory; FT_Memory memory;
FT_UShort max_points; FT_UShort max_points;
FT_Short max_contours; FT_UShort max_contours;
FT_UShort n_points; /* number of points in zone */ 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* org; /* original point coordinates */
FT_Vector* cur; /* current point coordinates */ FT_Vector* cur; /* current point coordinates */

View File

@ -5,7 +5,7 @@
* Basic WOFF/WOFF2 type definitions and interface (specification * Basic WOFF/WOFF2 type definitions and interface (specification
* only). * only).
* *
* Copyright (C) 1996-2023 by * Copyright (C) 1996-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
* *
* Interface for OT-SVG support related things (specification). * 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. * David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

@ -5,7 +5,7 @@
* Basic Type 1/Type 2 tables definitions and interface (specification * Basic Type 1/Type 2 tables definitions and interface (specification
* only). * only).
* *
* Copyright (C) 1996-2023 by * Copyright (C) 1996-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,
@ -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: * @struct:

View File

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

View File

@ -5,7 +5,7 @@
* Basic SFNT/TrueType tables definitions and interface * Basic SFNT/TrueType tables definitions and interface
* (specification only). * (specification only).
* *
* Copyright (C) 1996-2023 by * Copyright (C) 1996-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,
@ -838,8 +838,9 @@ FT_BEGIN_HEADER
* The target charmap. * The target charmap.
* *
* @return: * @return:
* The format of `charmap`. If `charmap` doesn't belong to an SFNT face, * The format of `charmap`. If `charmap` doesn't belong to an SFNT face
* return -1. * (including the synthetic Unicode charmap sometimes created by
* FreeType), return -1.
*/ */
FT_EXPORT( FT_Long ) FT_EXPORT( FT_Long )
FT_Get_CMap_Format( FT_CharMap charmap ); FT_Get_CMap_Format( FT_CharMap charmap );

View File

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

View File

@ -4,7 +4,7 @@
* *
* FreeType 2 build and setup macros. * FreeType 2 build and setup macros.
* *
* Copyright (C) 1996-2023 by * Copyright (C) 1996-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

@ -7,7 +7,7 @@
* *
* Auto-fitter data for blue strings (body). * Auto-fitter data for blue strings (body).
* *
* Copyright (C) 2013-2023 by * Copyright (C) 2013-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

View File

@ -4,7 +4,7 @@
* *
* Auto-fitter data for blue strings (body). * Auto-fitter data for blue strings (body).
* *
* Copyright (C) 2013-2023 by * Copyright (C) 2013-2024 by
* David Turner, Robert Wilhelm, and Werner Lemberg. * David Turner, Robert Wilhelm, and Werner Lemberg.
* *
* This file is part of the FreeType project, and may only be used, * This file is part of the FreeType project, and may only be used,

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