summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/freetype/docs
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/freetype/docs')
-rw-r--r--src/3rdparty/freetype/docs/CHANGES544
-rw-r--r--src/3rdparty/freetype/docs/CUSTOMIZE2
-rw-r--r--src/3rdparty/freetype/docs/DEBUG229
-rw-r--r--src/3rdparty/freetype/docs/LICENSE.TXT39
-rw-r--r--src/3rdparty/freetype/docs/TODO2
5 files changed, 677 insertions, 139 deletions
diff --git a/src/3rdparty/freetype/docs/CHANGES b/src/3rdparty/freetype/docs/CHANGES
index f36cb19b7e..96cf607d70 100644
--- a/src/3rdparty/freetype/docs/CHANGES
+++ b/src/3rdparty/freetype/docs/CHANGES
@@ -1,5 +1,475 @@
+CHANGES BETWEEN 2.13.1 and 2.13.2 (2023-Aug-25)
-CHANGES BETWEEN 2.10.0 and 2.10.1
+ I. MISCELLANEOUS
+
+ - Better support for CFF2 variation fonts.
+
+ - TrueType interpreter version 38 (also known as 'Infinality') has
+ been removed.
+
+ - Improved OpenVMS support.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.13.0 and 2.13.1 (2023-Jun-24)
+
+ I. MISCELLANEOUS
+
+ - New function `FT_Get_Default_Named_Instance` to get the index of
+ the default named instance of an OpenType Variation Font.
+
+ - A new load flag `FT_LOAD_NO_SVG` to make FreeType ignore glyphs in
+ an 'SVG ' table.
+
+ - New function `FT_GlyphSlot_AdjustWeight` to adjust the glyph
+ weight either horizontally or vertically. This is part of the
+ `ftsynth.h` header file, which is still considered to be in alpha
+ stage.
+
+ - TrueType interpreter version 38 (also known as 'Infinality') has
+ been deactivated; the value of `TT_INTERPRETER_VERSION_38` is now
+ the same as `TT_INTERPRETER_VERSION_40`.
+
+ - Updated OpenVMS support.
+
+ - The base API documentation has been modularized for easier
+ handling.
+
+ - Switching named instances on and off in Variation Fonts was buggy
+ if the design coordinates didn't change.
+
+ - `ftbench` has a new command-line option `-a` to apply design
+ coordinates.
+
+ - `ftview` can now flip SVG rendering on and off using the 'Z' key.
+
+ - In `ftmulti` it is now possible to toggle the fill rule and
+ overlap flag used for rendering glyphs using the 'F3' and 'F4'
+ keys, respectively. Toggling the anti-aliased mode has been
+ changed to the 'TAB' key.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.12.1 and 2.13.0 (2023-Feb-09)
+
+ I. IMPORTANT CHANGES
+
+ - The demo program `ftinspect` has been completely updated and much
+ enhanced. It now combines the functionality of almost all other
+ graphical FreeType demo programs into a single application based
+ on the Qt framework. This was Charlie Jiang's GSoC 2022 project.
+
+ - The 'COLR' v1 API is now considered as stable.
+
+ https://learn.microsoft.com/en-us/typography/opentype/spec/colr
+
+
+ II. MISCELLANEOUS
+
+ - For OpenType Variable Fonts, `avar` table format 2.0 is now
+ supported. The code was contributed by Behdad Esfahbod.
+
+ Note that this is an extension supported on recent Apple platforms
+ and by HarfBuzz, but not yet in the OpenType standard! See
+
+ https://github.com/harfbuzz/boring-expansion-spec/blob/main/avar2.md
+
+ for the specification. To deactivate it, define the configuration
+ macro 'TT_CONFIG_OPTION_NO_BORING_EXPANSION'.
+
+ - A new API `FT_GlyphSlot_Slant` to slant a glyph by a given angle
+ has been added. Note that this function is part of `ftsynth.h`,
+ which is still considered to be in alpha stage.
+
+ - TrueType interpreter version 38 (also known as 'Infinality') that
+ was first introduced about 10 years ago in FreeType 2.4.11 is now
+ deprecated and slated to be removed in the next version. TrueType
+ interpreter version 40 has been FreeType's default version for six
+ years now and provides an excellent alternative. This is the last
+ FreeType version with TT_INTERPRETER_VERSION_38 and
+ TT_INTERPRETER_VERSION_40 treated differently.
+
+ - The only referenced but never documented configuration macro
+ `FT_CONFIG_OPTION_NO_GLYPH_NAMES` has been removed.
+
+ - The `ftbench` demo program got a new command line option `-e` to
+ set a charmap index.
+
+ - Specifying a point size is now optional for the demo programs
+ `ftgrid`, `ftmulti`, `ftstring`, and `ftview`. If not given, a
+ default size is used.
+
+ - For `ftgrid`, `ftstring`, and `ftview`, option `-e` now also
+ accepts a numeric value to set a charmap index.
+
+ - In `ftstring`, it is now possible to set the displayed text
+ interactively by pressing the 'Enter' key.
+
+ - `ftmulti` can now handle up to 16 design axes.
+
+ - To avoid reserved identifiers that are globally defined, the
+ auto-hinter debugging macros (which are only available if
+ `FT_DEBUG_AUTOFIT` is defined)
+
+ ```
+ _af_debug_disable_horz_hints
+ _af_debug_disable_vert_hints
+ _af_debug_disable_blue_hints
+ _af_debug_hints
+ ```
+
+ have been renamed to
+
+ ```
+ af_debug_disable_horz_hints_
+ af_debug_disable_vert_hints_
+ af_debug_disable_blue_hints_
+ af_debug_hints_
+ ```
+
+ - The internal zlib library was updated to version 1.2.13. Note,
+ however, that FreeType is *not* affected by CVE-2022-37434 since
+ it doesn't use the `inflateGetHeader` function.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.12.0 and 2.12.1 (2022-May-01)
+
+ I. IMPORTANT BUG FIXES
+
+ - Loading CFF fonts sometimes made FreeType crash (bug introduced in
+ version 2.12.0)
+
+ - Loading a fully hinted TrueType glyph a second time (without
+ caching) sometimes yielded different rendering results if TrueType
+ hinting was active (bug introduced in version 2.12.0).
+
+ - The generation of the pkg-config file `freetype2.pc` was broken if
+ the build was done with cmake (bug introduced in version 2.12.0).
+
+
+ II. MISCELLANEOUS
+
+ - New option `--with-librsvg` for the `configure` script for better
+ FreeType demo support.
+
+ - The meson build no longer enforces both static and dynamic
+ versions of the library by default.
+
+ - The internal zlib library was updated to version 1.2.12. Note,
+ however, that FreeType is *not* affected by CVE-2018-25032 since
+ it only does decompression.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.11.1 and 2.12.0 (2022-Mar-30)
+
+ I. IMPORTANT CHANGES
+
+ - FreeType now handles OT-SVG fonts, to be controlled with
+ `FT_CONFIG_OPTION_SVG` configuration macro. By default, it can
+ only load the 'SVG ' table of an OpenType font. However, by using
+ the `svg-hooks` property of the new 'ot-svg' module it is possible
+ to register an external SVG rendering engine. The FreeType demo
+ programs have been set up to use 'librsvg' as the rendering
+ library.
+
+ This work was Moazin Khatti's GSoC 2019 project.
+
+
+ II. MISCELLANEOUS
+
+ - The handling of fonts with an 'sbix' table has been improved.
+
+ - Corrected bitmap offsets.
+
+ - A new tag `FT_PARAM_TAG_IGNORE_SBIX` for `FT_Open_Face` makes
+ FreeType ignore an 'sbix' table in a font, allowing applications
+ to access the font's outline glyphs.
+
+ - `FT_FACE_FLAG_SBIX` and `FT_FACE_FLAG_SBIX_OVERLAY` together
+ with their corresponding preprocessor macros `FT_HAS_SBIX` and
+ `FT_HAS_SBIX_OVERLAY` enable applications to treat 'sbix' tables
+ as described in the OpenType specification.
+
+ - The internal 'zlib' code has been updated to be in sync with the
+ current 'zlib' version (1.2.11).
+
+ - The previously internal load flag `FT_LOAD_SBITS_ONLY` is now
+ public.
+
+ - Some minor improvements of the building systems, in particular
+ handling of the 'zlib' library (internal vs. external).
+
+ - Support for non-desktop Universal Windows Platform.
+
+ - Various other minor bug and documentation fixes.
+
+ - The `ftdump` demo program shows more information for Type1 fonts
+ if option `-n` is given.
+
+ - `ftgrid` can now display embedded bitmap strikes.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.11.0 and 2.11.1 (2021-Dec-01)
+
+ I. IMPORTANT CHANGES
+
+ - Some fields in the `CID_FaceDictRec`, `CID_FaceInfoRec`, and
+ `FT_Data` structures 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. MISCELLANEOUS
+
+ - Cmake support has been further improved. To do that various
+ backward-incompatible changes were necessary; please see file
+ `CMakeLists.txt` for more details.
+
+ - Since version 2.11.0, a C99 compiler is necessary to compile
+ FreeType.
+
+ - The experimental 'COLR' v1 API has been updated to the latest
+ OpenType standard 1.9.
+
+ - The `apinames` tool got a new option `-wV` to output an OpenVMS
+ Linker Option File.
+
+ - VMS support was updated.
+
+ - MS Visual Studio support was added to build the demo programs.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.10.4 and 2.11.0 (2021-Jul-18)
+
+ I. IMPORTANT CHANGES
+
+ - A new rendering module has been added to create 8-bit Signed
+ Distance Field (SDF) bitmaps for both outline and bitmap glyphs.
+ The new rendering mode is called `FT_RENDER_MODE_SDF`, the pixel
+ mode is `FT_PIXEL_MODE_GRAY8`, and the corresponding raster flag
+ is `FT_RASTER_FLAG_SDF`.
+
+ This work was Anuj Verma's GSoC 2020 project.
+
+ - A new, experimental API is now available for surfacing properties
+ of 'COLR' v1 color fonts (as the name says, this is an extension
+ to the 'COLR' table for outline color fonts using the SFNT
+ container format). 'COLR' v1 fonts are a recently proposed
+ addition to OFF and OpenType; specification work currently happens
+ in
+
+ https://github.com/googlefonts/colr-gradients-spec/
+
+ 'COLR' v1 is expected to be merged to OpenType; the ISO
+ standardisation process for adding 'COLR' v1 as an amendment to
+ OFF is underway.
+
+ Functions similar to the already existing 'COLR' API have been
+ added to access the corresponding data.
+
+ FT_Get_Color_Glyph_Paint
+ Retrieve the root paint for a given glyph ID.
+
+ FT_Get_Paint_Layers
+ Access the layers of a `PaintColrLayers` table.
+
+ FT_Get_Colorline_Stops
+ Retrieve the 'color stops' on a color line. As an input, a
+ color stop iterator gets used, which in turn is retrieved from
+ a paint.
+
+ FT_Get_Paint
+ Dereference an `FT_OpaquePaint` object and retrieve the
+ corresponding `FT_COLR_Paint` object, which contains details
+ on how to draw the respective 'COLR' v1 `Paint` table.
+
+
+ II. MISCELLANEOUS
+
+ - FreeType has moved its infrastructure to
+
+ https://gitlab.freedesktop.org/freetype
+
+ A side effect is that the git repositories are now called
+ `freetype.git` and `freetype-demos.git`, which by default expand
+ to the directories `freetype` and `freetype-demos`, respectively.
+ The documentation has been updated accordingly.
+
+ FreeType's Savannah repositories will stay; they are now mirrors
+ of the 'freedesktop.org' repositories.
+
+ - A new function `FT_Get_Transform` returns the values set by
+ `FT_Set_Transform`.
+
+ - A new configuration macro `FT_DEBUG_LOGGING` is available. It
+ provides extended debugging capabilities for FreeType, for example
+ showing a time stamp or displaying the component a tracing message
+ comes from. See file `docs/DEBUG` for more information.
+
+ This work was Priyesh Kumar's GSoC 2020 project.
+
+ - The legacy Type 1 and CFF engines are further demoted due to lack
+ of CFF2 charstring support. You now need to use `FT_Property_Set`
+ to enable them besides the `T1_CONFIG_OPTION_OLD_ENGINE` and
+ `CFF_CONFIG_OPTION_OLD_ENGINE` options, respectively.
+
+ - The experimental 'warp' mode (AF_CONFIG_OPTION_USE_WARPER) for the
+ auto-hinter has been removed.
+
+ - The smooth rasterizer performance has been improved by >10%. Note
+ that due to necessary code changes there might be very subtle
+ differences in rendering. They are not visible by the eye,
+ however.
+
+ - PCF bitmap fonts compressed with LZW (these are usually files with
+ the extension `.pcf.Z`) are now handled correctly.
+
+ - Improved Meson build files, including support to build the
+ FreeType demo programs.
+
+ - A new demo program `ftsdf` is available to display Signed Distance
+ Fields of glyphs.
+
+ - The `ftlint` demo program has been extended to do more testing of
+ its input. In particular, it can display horizontal and vertical
+ acutances for quality assessment, together with computing MD5
+ checksums of rendered glyphs.
+
+ [The acutance measures how sharply the pixel coverage changes at
+ glyph edges. For monochrome bitmaps, it is always 2.0 in either
+ X or Y direction. For anti-aliased bitmaps, it depends on the
+ hinting and the shape of a glyph and might approach or even reach
+ value 2.0 for glyphs like 'I', 'L', '+', '-', or '=', while it
+ might be lower for glyphs like 'O', 'S', or 'W'.]
+
+ - The `ttdebug` demo program didn't show changed point coordinates
+ (bug introduced in version 2.10.3).
+
+ - It is now possible to adjust the axis increment for variable fonts
+ in the `ftmulti` demo program.
+
+ - It is now possible to change the hinting engine in the `ftstring`
+ demo program.
+
+ - The graphical demo programs work better now in native color depth
+ on win32 and x11.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.10.3 and 2.10.4 (2020-Oct-20)
+
+ I. IMPORTANT BUG FIXES
+
+ - A heap buffer overflow has been found in the handling of embedded
+ PNG bitmaps, introduced in FreeType version 2.6.
+
+ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15999
+
+ If you use option FT_CONFIG_OPTION_USE_PNG you should upgrade
+ immediately.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.10.2 and 2.10.3 (2020-Oct-10)
+
+ I. IMPORTANT CHANGES
+
+ - New flag `FT_OUTLINE_OVERLAP'. If set, make the smooth rasterizer
+ do 4x4 oversampling to mitigate artifacts in pixels partially
+ covered by overlapping contours. Note that this at least
+ quadruples the rendering time.
+
+ If a glyph in a TrueType font has the `OVERLAP_SIMPLE' or
+ `OVERLAP_COMPOUND' bit set, FreeType automatically selects this
+ rendering mode.
+
+
+ II. MISCELLANEOUS
+
+ - Using the arcane method of including FreeType header files with
+ macros like `FT_FREETYPE_H' is no longer mandatory (but retained
+ as an optional feature for backward compatibility).
+
+ - Support for building the library with Meson. Building the demo
+ programs with Meson will follow in a forthcoming release.
+
+ - Minor improvements to the B/W rasterizer.
+
+ - Auto-hinter support for Medefaidrin script.
+
+ - Fix various memory leaks (mainly for CFF) and other issues that
+ might cause crashes in rare circumstances.
+
+ - Jam support has been removed.
+
+ - In `ftview', custom LCD filter values are now normalized and
+ balanced. Unorthodox filters are still available through the `-L'
+ command line option.
+
+ - The GUI demo programs can now be resized.
+
+ - Demo programs that accept command line option `-k' can now handle
+ function keys, too. The corresponding character codes start with
+ 0xF1. As an example, the POSIX shell syntax (accepted by bash,
+ ksh, and zsh)
+
+ -k $'\xF3q'
+
+ emulates the pressing of function key `F3' followed by key `q'.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.10.1 and 2.10.2 (2020-May-09)
+
+ I. IMPORTANT CHANGES
+
+ - Support of WOFF2 fonts. This code contribution was Nikhil
+ Ramakrishnan's GSoC 2019 project.
+
+
+ II. MISCELLANEOUS
+
+ - Function `FT_Get_Var_Axis_Flags' returned random data for Type 1
+ MM fonts.
+
+ - Type 1 fonts with non-integer metrics are now supported by the new
+ (CFF) engine introduced in FreeType 2.9.
+
+ - Drop support for Python 2 in Freetype's API reference generator
+ `docwriter' (Python >= 3.5 is required for targets `make refdoc'
+ and `make refdoc-venv').
+
+ - Auto-hinter support for Hanifi Rohingya.
+
+ - Document the `FT2_KEEP_ALIVE' debugging environment variable.
+
+ - The Visual C++ (and Visual C) project files for Windows builds no
+ longer generate libraries that contain the FreeType version in its
+ filenames. Instead, a resource file gets used to make the
+ libraries contain the corresponding information.
+
+ - The next release will remove Jam build support.
+
+ - The `ftbench' demo program has a new test for testing the
+ `FT_Glyph_Stroke' functionality.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.10.0 and 2.10.1 (2019-Jul-01)
I. IMPORTANT BUG FIXES
@@ -53,7 +523,7 @@ CHANGES BETWEEN 2.10.0 and 2.10.1
======================================================================
-CHANGES BETWEEN 2.9.1 and 2.10.0
+CHANGES BETWEEN 2.9.1 and 2.10.0 (2019-Mar-15)
I. IMPORTANT CHANGES
@@ -179,7 +649,7 @@ CHANGES BETWEEN 2.9.1 and 2.10.0
======================================================================
-CHANGES BETWEEN 2.9 and 2.9.1
+CHANGES BETWEEN 2.9 and 2.9.1 (2019-May-01)
I. IMPORTANT BUG FIXES
@@ -209,7 +679,7 @@ CHANGES BETWEEN 2.9 and 2.9.1
use the `pkg-config' interface.
The `configure' script no longer installs `freetype-config' by
- default. For backwards compatibility, a new configure option
+ default. For backward compatibility, a new configure option
`--enable-freetype-config' is provided that reverts this
decision.
@@ -227,7 +697,7 @@ CHANGES BETWEEN 2.9 and 2.9.1
======================================================================
-CHANGES BETWEEN 2.8.1 and 2.9
+CHANGES BETWEEN 2.8.1 and 2.9 (2018-Jan-08)
I. IMPORTANT BUG FIXES
@@ -317,7 +787,7 @@ CHANGES BETWEEN 2.8.1 and 2.9
======================================================================
-CHANGES BETWEEN 2.8 and 2.8.1
+CHANGES BETWEEN 2.8 and 2.8.1 (2017-Sep-16)
I. IMPORTANT BUG FIXES
@@ -400,7 +870,7 @@ CHANGES BETWEEN 2.8 and 2.8.1
======================================================================
-CHANGES BETWEEN 2.7.1 and 2.8
+CHANGES BETWEEN 2.7.1 and 2.8 (2017-May-13)
I. IMPORTANT CHANGES
@@ -521,7 +991,7 @@ CHANGES BETWEEN 2.7.1 and 2.8
======================================================================
-CHANGES BETWEEN 2.7 and 2.7.1
+CHANGES BETWEEN 2.7 and 2.7.1 (2016-Dec-30)
I. IMPORTANT CHANGES
@@ -598,7 +1068,7 @@ CHANGES BETWEEN 2.7 and 2.7.1
======================================================================
-CHANGES BETWEEN 2.6.5 and 2.7
+CHANGES BETWEEN 2.6.5 and 2.7 (2016-Sep-08)
I. IMPORTANT CHANGES
@@ -662,7 +1132,7 @@ CHANGES BETWEEN 2.6.5 and 2.7
======================================================================
-CHANGES BETWEEN 2.6.4 and 2.6.5
+CHANGES BETWEEN 2.6.4 and 2.6.5 (2016-Jul-12)
I. IMPORTANT BUG FIXES
@@ -682,7 +1152,7 @@ CHANGES BETWEEN 2.6.4 and 2.6.5
======================================================================
-CHANGES BETWEEN 2.6.3 and 2.6.4
+CHANGES BETWEEN 2.6.3 and 2.6.4 (2016-Jul-05)
I. IMPORTANT CHANGES
@@ -748,7 +1218,7 @@ CHANGES BETWEEN 2.6.3 and 2.6.4
======================================================================
-CHANGES BETWEEN 2.6.2 and 2.6.3
+CHANGES BETWEEN 2.6.2 and 2.6.3 (2016-Feb-08)
I. IMPORTANT CHANGES
@@ -797,7 +1267,7 @@ CHANGES BETWEEN 2.6.2 and 2.6.3
======================================================================
-CHANGES BETWEEN 2.6.1 and 2.6.2
+CHANGES BETWEEN 2.6.1 and 2.6.2 (2015-Nov-28)
I. IMPORTANT CHANGES
@@ -857,7 +1327,7 @@ CHANGES BETWEEN 2.6.1 and 2.6.2
======================================================================
-CHANGES BETWEEN 2.6 and 2.6.1
+CHANGES BETWEEN 2.6 and 2.6.1 (2015-Oct-04)
I. IMPORTANT BUG FIXES
@@ -938,7 +1408,7 @@ CHANGES BETWEEN 2.6 and 2.6.1
======================================================================
-CHANGES BETWEEN 2.5.5 and 2.6
+CHANGES BETWEEN 2.5.5 and 2.6 (2015-Jun-07)
I. IMPORTANT CHANGES
@@ -1044,7 +1514,7 @@ CHANGES BETWEEN 2.5.5 and 2.6
======================================================================
-CHANGES BETWEEN 2.5.4 and 2.5.5
+CHANGES BETWEEN 2.5.4 and 2.5.5 (2014-Dec-30)
I. IMPORTANT BUG FIXES
@@ -1054,7 +1524,7 @@ CHANGES BETWEEN 2.5.4 and 2.5.5
======================================================================
-CHANGES BETWEEN 2.5.3 and 2.5.4
+CHANGES BETWEEN 2.5.3 and 2.5.4 (2014-Dec-06)
I. IMPORTANT BUG FIXES
@@ -1125,7 +1595,7 @@ CHANGES BETWEEN 2.5.3 and 2.5.4
======================================================================
-CHANGES BETWEEN 2.5.2 and 2.5.3
+CHANGES BETWEEN 2.5.2 and 2.5.3 (2014-Mar-06)
I. IMPORTANT BUG FIXES
@@ -1193,7 +1663,7 @@ CHANGES BETWEEN 2.5.2 and 2.5.3
======================================================================
-CHANGES BETWEEN 2.5.1 and 2.5.2
+CHANGES BETWEEN 2.5.1 and 2.5.2 (2013-Dec-08)
I. IMPORTANT BUG FIXES
@@ -1217,7 +1687,7 @@ CHANGES BETWEEN 2.5.1 and 2.5.2
======================================================================
-CHANGES BETWEEN 2.5 and 2.5.1
+CHANGES BETWEEN 2.5 and 2.5.1 (2013-Nov-25)
I. IMPORTANT BUG FIXES
@@ -1321,7 +1791,7 @@ CHANGES BETWEEN 2.5 and 2.5.1
======================================================================
-CHANGES BETWEEN 2.4.12 and 2.5
+CHANGES BETWEEN 2.4.12 and 2.5 (2013-Jun-19)
I. IMPORTANT BUG FIXES
@@ -1401,7 +1871,7 @@ CHANGES BETWEEN 2.4.12 and 2.5
======================================================================
-CHANGES BETWEEN 2.4.11 and 2.4.12
+CHANGES BETWEEN 2.4.11 and 2.4.12 (2013-May-08)
- We have another CFF parsing and hinting engine! Written by Dave
Arnold <darnold@adobe.com>, this work has been contributed by
@@ -1489,7 +1959,7 @@ index ebcf189..3f2ce6b 100644
======================================================================
-CHANGES BETWEEN 2.4.10 and 2.4.11
+CHANGES BETWEEN 2.4.10 and 2.4.11 (2012-Dec-20)
I. IMPORTANT BUG FIXES
@@ -1549,7 +2019,7 @@ CHANGES BETWEEN 2.4.10 and 2.4.11
======================================================================
-CHANGES BETWEEN 2.4.9 and 2.4.10
+CHANGES BETWEEN 2.4.9 and 2.4.10 (2012-Jun-15)
I. IMPORTANT BUG FIXES
@@ -1574,7 +2044,7 @@ CHANGES BETWEEN 2.4.9 and 2.4.10
======================================================================
-CHANGES BETWEEN 2.4.8 and 2.4.9
+CHANGES BETWEEN 2.4.8 and 2.4.9 (2012-Mar-08)
I. IMPORTANT BUG FIXES
@@ -1602,7 +2072,7 @@ CHANGES BETWEEN 2.4.8 and 2.4.9
======================================================================
-CHANGES BETWEEN 2.4.7 and 2.4.8
+CHANGES BETWEEN 2.4.7 and 2.4.8 (2011-Nov-14)
I. IMPORTANT BUG FIXES
@@ -1618,7 +2088,7 @@ CHANGES BETWEEN 2.4.7 and 2.4.8
======================================================================
-CHANGES BETWEEN 2.4.6 and 2.4.7
+CHANGES BETWEEN 2.4.6 and 2.4.7 (2011-Oct-18)
I. IMPORTANT BUG FIXES
@@ -1635,7 +2105,7 @@ CHANGES BETWEEN 2.4.6 and 2.4.7
======================================================================
-CHANGES BETWEEN 2.4.5 and 2.4.6
+CHANGES BETWEEN 2.4.5 and 2.4.6 (2011-Jul-29)
I. IMPORTANT BUG FIXES
@@ -1674,7 +2144,7 @@ CHANGES BETWEEN 2.4.5 and 2.4.6
======================================================================
-CHANGES BETWEEN 2.4.4 and 2.4.5
+CHANGES BETWEEN 2.4.4 and 2.4.5 (2011-Jun-25)
I. IMPORTANT BUG FIXES
@@ -1721,7 +2191,7 @@ CHANGES BETWEEN 2.4.4 and 2.4.5
======================================================================
-CHANGES BETWEEN 2.4.3 and 2.4.4
+CHANGES BETWEEN 2.4.3 and 2.4.4 (2010-Nov-28)
I. IMPORTANT BUG FIXES
@@ -1746,7 +2216,7 @@ CHANGES BETWEEN 2.4.3 and 2.4.4
======================================================================
-CHANGES BETWEEN 2.4.2 and 2.4.3
+CHANGES BETWEEN 2.4.2 and 2.4.3 (2010-Oct-03)
I. IMPORTANT BUG FIXES
@@ -1765,7 +2235,7 @@ CHANGES BETWEEN 2.4.2 and 2.4.3
======================================================================
-CHANGES BETWEEN 2.4.1 and 2.4.2
+CHANGES BETWEEN 2.4.1 and 2.4.2 (2010-Aug-06)
I. IMPORTANT BUG FIXES
@@ -1789,7 +2259,7 @@ CHANGES BETWEEN 2.4.1 and 2.4.2
======================================================================
-CHANGES BETWEEN 2.4.0 and 2.4.1
+CHANGES BETWEEN 2.4.0 and 2.4.1 (2010-Jul-18)
I. IMPORTANT CHANGES
@@ -1799,7 +2269,7 @@ CHANGES BETWEEN 2.4.0 and 2.4.1
======================================================================
-CHANGES BETWEEN 2.3.12 and 2.4.0
+CHANGES BETWEEN 2.3.12 and 2.4.0 (2010-Jul-12)
I. IMPORTANT CHANGES
@@ -2008,7 +2478,7 @@ CHANGES BETWEEN 2.3.8 and 2.3.7
is provided for x86 and ARM. See FT_CONFIG_OPTION_INLINE_MULFIX
and FT_CONFIG_OPTION_NO_ASSEMBLER (in ftoption.h) for more.
- - The handling of `tricky' fonts (this is, fonts which don't work
+ - The handling of `tricky' fonts (that is, fonts which don't work
with the autohinter, needing the font format's hinting engine)
has been generalized and changed slightly:
@@ -2465,7 +2935,7 @@ CHANGES BETWEEN 2.2 and 2.1.10
II. IMPORTANT CHANGES
- - Version 2.2 no longer exposes its internals, this is, the header
+ - Version 2.2 no longer exposes its internals, that is, the header
files located in the `include/freetype/internal' directory of
the source package are not copied anymore by the `make install'
command. Consequently, a number of rogue clients which directly
@@ -5198,7 +5668,7 @@ Extensions support:
------------------------------------------------------------------------
-Copyright (C) 2000-2019 by
+Copyright (C) 2000-2023 by
David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used,
diff --git a/src/3rdparty/freetype/docs/CUSTOMIZE b/src/3rdparty/freetype/docs/CUSTOMIZE
index f3f9f8edc1..80527db7e5 100644
--- a/src/3rdparty/freetype/docs/CUSTOMIZE
+++ b/src/3rdparty/freetype/docs/CUSTOMIZE
@@ -139,7 +139,7 @@ IV. Overriding default configuration and module headers
----------------------------------------------------------------------
-Copyright (C) 2003-2019 by
+Copyright (C) 2003-2023 by
David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used,
diff --git a/src/3rdparty/freetype/docs/DEBUG b/src/3rdparty/freetype/docs/DEBUG
index 828f29434d..7398df69b1 100644
--- a/src/3rdparty/freetype/docs/DEBUG
+++ b/src/3rdparty/freetype/docs/DEBUG
@@ -11,20 +11,20 @@ located in the file `ftoption.h'. The macros are:
FT_DEBUG_LEVEL_ERROR
- #define this macro if you want to compile the FT_ERROR macro calls
- to print error messages during program execution. This will not
- stop the program. Very useful to spot invalid fonts during
+ #define this macro if you want to compile the `FT_ERROR' macro
+ calls to print error messages during program execution. This does
+ not stop the program. Very useful to spot invalid fonts during
development and to code workarounds for them.
FT_DEBUG_LEVEL_TRACE
- #define this macro if you want to compile both macros FT_ERROR and
- FT_TRACE. This also includes the variants FT_TRACE0, FT_TRACE1,
- FT_TRACE2, ..., FT_TRACE7.
+ #define this macro if you want to compile both macros `FT_ERROR'
+ and `FT_TRACE'. This also includes the variants `FT_TRACE0',
+ `FT_TRACE1', `FT_TRACE2', ..., `FT_TRACE7'.
The trace macros are used to send debugging messages when an
appropriate `debug level' is configured at runtime through the
- FT2_DEBUG environment variable (more on this later).
+ `FT2_DEBUG' environment variable (more on this later).
FT_DEBUG_MEMORY
@@ -32,18 +32,33 @@ located in the file `ftoption.h'. The macros are:
small but effective debugging memory manager that tracks all
allocations and frees that are performed within the font engine.
- When the FT2_DEBUG_MEMORY environment variable is defined at
- runtime, a call to FT_Done_FreeType will dump memory statistics,
- including the list of leaked memory blocks with the source
- locations where these were allocated. It is always a very good
- idea to define this in development builds. This works with _any_
- program linked to FreeType, but requires a big deal of memory (the
- debugging memory manager never frees the blocks to the heap in
- order to detect double frees).
+ When the `FT2_DEBUG_MEMORY' environment variable is defined at
+ runtime, a call to `FT_Done_FreeType' dumps memory statistics,
+ including the list of leaked memory blocks and optionally with the
+ source locations where these were allocated. It is always a very
+ good idea to define this in development builds. This works with
+ _any_ program linked to FreeType, but requires a big deal of
+ memory (the debugging memory manager never frees the blocks to the
+ heap in order to detect double frees).
- When FT2_DEBUG_MEMORY isn't defined at runtime, the debugging
+ When `FT2_DEBUG_MEMORY' isn't defined at runtime, the debugging
memory manager is ignored, and performance is unaffected.
+ FT_DEBUG_LOGGING
+
+ #define this macro for enhanced logging support; it automatically
+ sets `FT_DEBUG_LEVEL_TRACE' and `FT_DEBUG_LEVEL_ERROR'.
+
+ If defined, `FT_TRACE' and `FT_ERROR' can send tracing and
+ debugging messages to a file. The location of the log file has to
+ be set with the `FT_LOGGING_FILE' environment variable (more on
+ this later).
+
+ The main enhancements are the possibility of logging the time and
+ the name of the `FT_COMPONENT' macro together with the affected
+ `FT_TRACE' or `FT_ERROR' calls. See below how to activate this in
+ the `FT2_DEBUG' environment variable.
+
II. Debugging macros
--------------------
@@ -55,10 +70,10 @@ debugging its code:
1. FT_ERROR(( ... ))
This macro is used to send debug messages that indicate relatively
- serious errors (like broken font files), but will not stop the
+ serious errors (like broken font files) without stopping the
execution of the running program. Its code is compiled only when
- either FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined in
- `ftoption.h'.
+ either `FT_DEBUG_LEVEL_ERROR' or `FT_DEBUG_LEVEL_TRACE' are
+ defined in `ftoption.h'.
Note that you have to use a printf-like signature, but with double
parentheses, like in
@@ -69,53 +84,53 @@ debugging its code:
2. FT_ASSERT( condition )
This macro is used to check strong assertions at runtime. If its
- condition isn't TRUE, the program will abort with a panic message.
- Its code is compiled when either FT_DEBUG_LEVEL_ERROR or
- FT_DEBUG_LEVEL_TRACE are defined. You don't need double
- parentheses here. For example
+ condition isn't TRUE, the program aborts with a panic message.
+ Its code is compiled when either `FT_DEBUG_LEVEL_ERROR' or
+ `FT_DEBUG_LEVEL_TRACE' are defined. You don't need double
+ parentheses here. Example:
FT_ASSERT( ptr != NULL );
3. FT_TRACE( level, (message...) )
- The FT_TRACE macro is used to send general-purpose debugging
+ The `FT_TRACE' macro is used to send general-purpose debugging
messages during program execution. This macro uses an *implicit*
- macro named FT_COMPONENT used to name the current FreeType
+ macro named `FT_COMPONENT', which names the current FreeType
component being run.
- The developer should always define FT_COMPONENT as appropriate,
+ The developer should always define `FT_COMPONENT' as appropriate,
for example as in
#undef FT_COMPONENT
#define FT_COMPONENT io
- The value of the FT_COMPONENT macro is one of the component
- names defined in the internal file `internal/fttrace.h'. If you
- modify FreeType source and insert new FT_COMPONENT macro, you must
- register it in `fttrace.h'. If you insert or remove many trace
- macros, you can check the undefined or the unused trace macro by
- `src/tools/chktrcmp.py'.
+ The value of the `FT_COMPONENT' macro is one of the component
+ names defined in the internal file `internal/fttrace.h'. If you
+ modify the FreeType source code and insert a new `FT_COMPONENT'
+ macro, you must register it in `fttrace.h'. If you insert or
+ remove many trace macros, you can test for undefined or unused
+ trace macros with the script `src/tools/chktrcmp.py'.
- Each such component is assigned a `debug level', ranging from 0 to
- 7, through the use of the FT2_DEBUG environment variable
- (described below) when a program linked with FreeType starts.
+ Each such component is assigned a `debug level', ranging from
+ value 0 to 7, through the use of the `FT2_DEBUG' environment
+ variable (described below) when a program linked with FreeType
+ starts.
- When FT_TRACE is called, its level is compared to the one of the
+ When `FT_TRACE' is called, its level is compared to the one of the
corresponding component. Messages with trace levels *higher* than
- the corresponding component level are filtered and never printed.
-
- This means that trace messages with level 0 are always printed,
- those with level 2 are only printed when the component level is
- *at least* 2.
+ the corresponding component level are filtered out and never
+ printed. This means that trace messages with level 0 are always
+ printed, those with level 2 are only printed when the component
+ level is *at least* 2, etc.
- The second parameter to FT_TRACE must contain parentheses and
- correspond to a printf-like call, as in
+ The second parameter to `FT_TRACE' must contain parentheses and
+ corresponds to a printf-like call, as in
FT_TRACE( 2, ( "your %s is not %s\n", "foo", "bar" ) )
- The shortcut macros FT_TRACE0, FT_TRACE1, FT_TRACE2, ...,
- FT_TRACE7 can be used with constant level indices, and are much
+ The shortcut macros `FT_TRACE0', `FT_TRACE1', `FT_TRACE2', ...,
+ `FT_TRACE7' can be used with constant level indices, and are much
cleaner to use, as in
FT_TRACE2(( "your %s is not %s\n", "foo", "bar" ));
@@ -131,7 +146,7 @@ behaviour of FreeType at runtime.
FT2_DEBUG
This variable is only used when FreeType is built with
- FT_DEBUG_LEVEL_TRACE defined. It contains a list of component
+ `FT_DEBUG_LEVEL_TRACE' defined. It contains a list of component
level definitions, following this format:
component1:level1 component2:level2 component3:level3 ...
@@ -140,57 +155,149 @@ behaviour of FreeType at runtime.
in `fttrace.h'. `levelX' is the corresponding level to use at
runtime.
- `any' is a special component name that will be interpreted as
- `any/all components'. For example, the following definitions
+ `any' is a special component name that is interpreted as `any/all
+ components'. For example, the following definitions
set FT2_DEBUG=any:2 memory:5 io:4 (on Windows)
export FT2_DEBUG="any:2 memory:5 io:4" (on Linux with bash)
both stipulate that all components should have level 2, except for
- the memory and io components which will be set to trace levels 5
+ the memory and io components, which are set to the trace levels 5
and 4, respectively.
+ If `FT_DEBUG_LOGGING' is defined, two more options are available.
+
+ * -v: Print also the name of FreeType's component from which the
+ current log is produced, together with the tracing level.
+
+ * -t: Print also the time.
+
+ Here are some examples how the output might look like.
+
+ FT2_DEBUG="any:7 memory:5 -vt"
+
+ => [20:32:02:44969 ttload:2] table directory loaded
+
+ FT2_DEBUG="any:7 memory:5 -t"
+
+ => [20:32:02:44969] table directory loaded
+
+ FT2_DEBUG="any:7 memory:5 -v"
+
+ => [ttload:2] table directory loaded
+
+
+ FT_LOGGING_FILE
+
+ This variable is only used if FreeType is built with the
+ `FT_DEBUG_LOGGING' macro defined. It contains the path to the
+ file where the user wants to put his log file. If it is not set,
+ FreeType uses stderr.
+
+ Examples:
+
+ On UNIX-like systems with bash:
+ export FT_LOGGING_FILE="/tmp/freetype2.log"
+
+ On Windows:
+ set FT_LOGGING_FILE=C:\Users\AppData\Local\Temp\freetype2.log
+
FT2_DEBUG_MEMORY
This environment variable, when defined, tells FreeType to use a
- debugging memory manager that will track leaking memory blocks as
- well as other common errors like double frees. It is also capable
- of reporting _where_ the leaking blocks were allocated, which
+ debugging memory manager that tracks leaking memory blocks as well
+ as other common errors like double frees. It is also capable of
+ reporting _where_ the leaking blocks were allocated, which
considerably saves time when debugging new additions to the
library.
This code is only compiled when FreeType is built with the
- FT_DEBUG_MEMORY macro #defined in `ftoption.h' though, it will be
+ `FT_DEBUG_MEMORY' macro #defined in `ftoption.h' though, it is
ignored in other builds.
FT2_ALLOC_TOTAL_MAX
- This variable is ignored if FT2_DEBUG_MEMORY is not defined. It
+ This variable is ignored if `FT2_DEBUG_MEMORY' is not defined. It
allows you to specify a maximum heap size for all memory
allocations performed by FreeType. This is very useful to test
the robustness of the font engine and programs that use it in
tight memory conditions.
- If it is undefined, or if its value is not strictly positive, then
- no allocation bounds are checked at runtime.
+ If it is undefined, or if its value is not strictly positive, no
+ allocation bounds are checked at runtime.
FT2_ALLOC_COUNT_MAX
- This variable is ignored if FT2_DEBUG_MEMORY is not defined. It
+ This variable is ignored if `FT2_DEBUG_MEMORY' is not defined. It
allows you to specify a maximum number of memory allocations
performed by FreeType before returning the error
- FT_Err_Out_Of_Memory. This is useful for debugging and testing
+ `FT_Err_Out_Of_Memory'. This is useful for debugging and testing
the engine's robustness.
- If it is undefined, or if its value is not strictly positive, then
- no allocation bounds are checked at runtime.
+ If it is undefined, or if its value is not strictly positive, no
+ allocation bounds are checked at runtime.
+
+
+ FT2_KEEP_ALIVE
+
+ This variable is ignored if `FT2_DEBUG_MEMORY' is not defined.
+ `Keep alive' means that freed blocks aren't released to the heap.
+ This is useful to detect double-frees or weird heap corruption,
+ reporting the source code location of the original allocation and
+ deallocation in case of a problem. It uses large amounts of
+ memory, however.
+
+ If it is undefined, or if its value is not strictly positive,
+ freed blocks are released at runtime.
+
+
+IV. Additional Capabilities with `FT_DEBUG_LOGGING'
+---------------------------------------------------
+
+If `FT_DEBUG_LOGGING' is defined, four APIs are available to provide
+additional debugging support. Use
+
+ #include <freetype/ftlogging.h>
+
+to access them.
+
+ FT_Trace_Set_Level( const char* level )
+
+ By default, FreeType uses the tracing levels set in the
+ `FT2_DEBUG' environment variable. Use this function to override
+ the value with `level'. Use value `NULL' to disable tracing.
+
+ FT_Trace_Set_Default_Level( void )
+
+ Reset the tracing levels to the default value, i.e., the value of
+ the `FT2_DEBUG' environment variable or no tracing if not set.
+
+ FT_Set_Log_Handler( ft_custom_log_handler handler )
+
+ Use `handler' as a custom handler for formatting tracing and error
+ messages. The `ft_custom_log_handler' typedef has the following
+ prototype.
+
+ void
+ (*ft_custom_log_handler)( const char* ft_component,
+ const char* fmt,
+ va_list args );
+
+ `ft_component' is the current component like `ttload', `fmt' is the
+ first argument of `FT_TRACE' or `FT_ERROR', and `args' holds the
+ remaining arguments.
+
+ FT_Set_Default_Log_Handler( void )
+
+ Reset the log handler to the default version.
+
------------------------------------------------------------------------
-Copyright (C) 2002-2019 by
+Copyright (C) 2002-2023 by
David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used,
diff --git a/src/3rdparty/freetype/docs/LICENSE.TXT b/src/3rdparty/freetype/docs/LICENSE.TXT
deleted file mode 100644
index af5a1c50f6..0000000000
--- a/src/3rdparty/freetype/docs/LICENSE.TXT
+++ /dev/null
@@ -1,39 +0,0 @@
-
-The FreeType 2 font engine is copyrighted work and cannot be used
-legally without a software license. In order to make this project
-usable to a vast majority of developers, we distribute it under two
-mutually exclusive open-source licenses.
-
-This means that *you* must choose *one* of the two licenses described
-below, then obey all its terms and conditions when using FreeType 2 in
-any of your projects or products.
-
- - The FreeType License, found in the file `FTL.TXT', which is similar
- to the original BSD license *with* an advertising clause that forces
- you to explicitly cite the FreeType project in your product's
- documentation. All details are in the license file. This license
- is suited to products which don't use the GNU General Public
- License.
-
- Note that this license is compatible to the GNU General Public
- License version 3, but not version 2.
-
- - The GNU General Public License version 2, found in `GPLv2.TXT' (any
- later version can be used also), for programs which already use the
- GPL. Note that the FTL is incompatible with GPLv2 due to its
- advertisement clause.
-
-The contributed BDF and PCF drivers come with a license similar to that
-of the X Window System. It is compatible to the above two licenses (see
-file src/bdf/README and src/pcf/README). The same holds for the files
-`fthash.c' and `fthash.h'; their code was part of the BDF driver in
-earlier FreeType versions.
-
-The gzip module uses the zlib license (see src/gzip/zlib.h) which too is
-compatible to the above two licenses.
-
-The MD5 checksum support (only used for debugging in development builds)
-is in the public domain.
-
-
---- end of LICENSE.TXT ---
diff --git a/src/3rdparty/freetype/docs/TODO b/src/3rdparty/freetype/docs/TODO
index 1efccc68eb..d340880d21 100644
--- a/src/3rdparty/freetype/docs/TODO
+++ b/src/3rdparty/freetype/docs/TODO
@@ -27,7 +27,7 @@ Other bugs have been registered at the savannah bugzilla of FreeType.
------------------------------------------------------------------------
-Copyright (C) 2001-2019 by
+Copyright (C) 2001-2023 by
David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used,