浏览代码

Update HarfBuzz, ICU and FreeType

HarfBuzz: Update to version 7.3.0
ICU4C: Update to version 73.1
FreeType: Update to version 2.13.0
bruvzg 2 年之前
父节点
当前提交
b64df2bf74
共有 100 个文件被更改,包括 640 次插入467 次删除
  1. 2 1
      modules/text_server_adv/SCsub
  2. 2 1
      modules/text_server_adv/gdextension_build/SConstruct
  3. 5 10
      thirdparty/README.md
  4. 5 1
      thirdparty/freetype/LICENSE.TXT
  5. 1 1
      thirdparty/freetype/include/freetype/config/ftconfig.h
  6. 1 1
      thirdparty/freetype/include/freetype/config/ftheader.h
  7. 27 9
      thirdparty/freetype/include/freetype/config/ftoption.h
  8. 1 1
      thirdparty/freetype/include/freetype/config/ftstdlib.h
  9. 1 1
      thirdparty/freetype/include/freetype/config/integer-types.h
  10. 1 1
      thirdparty/freetype/include/freetype/config/mac-support.h
  11. 1 1
      thirdparty/freetype/include/freetype/config/public-macros.h
  12. 120 112
      thirdparty/freetype/include/freetype/freetype.h
  13. 1 1
      thirdparty/freetype/include/freetype/ftadvanc.h
  14. 1 1
      thirdparty/freetype/include/freetype/ftbbox.h
  15. 1 1
      thirdparty/freetype/include/freetype/ftbdf.h
  16. 1 1
      thirdparty/freetype/include/freetype/ftbitmap.h
  17. 1 1
      thirdparty/freetype/include/freetype/ftbzip2.h
  18. 2 2
      thirdparty/freetype/include/freetype/ftcache.h
  19. 1 1
      thirdparty/freetype/include/freetype/ftcid.h
  20. 52 103
      thirdparty/freetype/include/freetype/ftcolor.h
  21. 1 2
      thirdparty/freetype/include/freetype/ftdriver.h
  22. 1 1
      thirdparty/freetype/include/freetype/fterrdef.h
  23. 2 2
      thirdparty/freetype/include/freetype/fterrors.h
  24. 1 1
      thirdparty/freetype/include/freetype/ftfntfmt.h
  25. 1 1
      thirdparty/freetype/include/freetype/ftgasp.h
  26. 6 6
      thirdparty/freetype/include/freetype/ftglyph.h
  27. 1 1
      thirdparty/freetype/include/freetype/ftgxval.h
  28. 1 1
      thirdparty/freetype/include/freetype/ftgzip.h
  29. 1 1
      thirdparty/freetype/include/freetype/ftimage.h
  30. 1 1
      thirdparty/freetype/include/freetype/ftincrem.h
  31. 4 4
      thirdparty/freetype/include/freetype/ftlcdfil.h
  32. 1 1
      thirdparty/freetype/include/freetype/ftlist.h
  33. 1 1
      thirdparty/freetype/include/freetype/ftlogging.h
  34. 1 1
      thirdparty/freetype/include/freetype/ftlzw.h
  35. 1 1
      thirdparty/freetype/include/freetype/ftmac.h
  36. 14 5
      thirdparty/freetype/include/freetype/ftmm.h
  37. 1 1
      thirdparty/freetype/include/freetype/ftmodapi.h
  38. 1 1
      thirdparty/freetype/include/freetype/ftmoderr.h
  39. 1 1
      thirdparty/freetype/include/freetype/ftotval.h
  40. 1 1
      thirdparty/freetype/include/freetype/ftoutln.h
  41. 1 1
      thirdparty/freetype/include/freetype/ftparams.h
  42. 2 2
      thirdparty/freetype/include/freetype/ftpfr.h
  43. 1 1
      thirdparty/freetype/include/freetype/ftrender.h
  44. 1 1
      thirdparty/freetype/include/freetype/ftsizes.h
  45. 1 1
      thirdparty/freetype/include/freetype/ftsnames.h
  46. 2 2
      thirdparty/freetype/include/freetype/ftstroke.h
  47. 11 2
      thirdparty/freetype/include/freetype/ftsynth.h
  48. 10 4
      thirdparty/freetype/include/freetype/ftsystem.h
  49. 1 1
      thirdparty/freetype/include/freetype/fttrigon.h
  50. 5 2
      thirdparty/freetype/include/freetype/fttypes.h
  51. 1 1
      thirdparty/freetype/include/freetype/ftwinfnt.h
  52. 1 1
      thirdparty/freetype/include/freetype/internal/autohint.h
  53. 1 1
      thirdparty/freetype/include/freetype/internal/cffotypes.h
  54. 2 2
      thirdparty/freetype/include/freetype/internal/cfftypes.h
  55. 15 2
      thirdparty/freetype/include/freetype/internal/compiler-macros.h
  56. 40 6
      thirdparty/freetype/include/freetype/internal/ftcalc.h
  57. 1 1
      thirdparty/freetype/include/freetype/internal/ftdebug.h
  58. 1 1
      thirdparty/freetype/include/freetype/internal/ftdrv.h
  59. 1 1
      thirdparty/freetype/include/freetype/internal/ftgloadr.h
  60. 7 7
      thirdparty/freetype/include/freetype/internal/ftmemory.h
  61. 85 0
      thirdparty/freetype/include/freetype/internal/ftmmtypes.h
  62. 1 1
      thirdparty/freetype/include/freetype/internal/ftobjs.h
  63. 1 1
      thirdparty/freetype/include/freetype/internal/ftpsprop.h
  64. 1 1
      thirdparty/freetype/include/freetype/internal/ftrfork.h
  65. 1 1
      thirdparty/freetype/include/freetype/internal/ftserv.h
  66. 54 54
      thirdparty/freetype/include/freetype/internal/ftstream.h
  67. 1 1
      thirdparty/freetype/include/freetype/internal/fttrace.h
  68. 1 1
      thirdparty/freetype/include/freetype/internal/ftvalid.h
  69. 1 5
      thirdparty/freetype/include/freetype/internal/psaux.h
  70. 3 3
      thirdparty/freetype/include/freetype/internal/pshints.h
  71. 1 1
      thirdparty/freetype/include/freetype/internal/services/svbdf.h
  72. 1 1
      thirdparty/freetype/include/freetype/internal/services/svcfftl.h
  73. 1 1
      thirdparty/freetype/include/freetype/internal/services/svcid.h
  74. 1 1
      thirdparty/freetype/include/freetype/internal/services/svfntfmt.h
  75. 1 1
      thirdparty/freetype/include/freetype/internal/services/svgldict.h
  76. 1 1
      thirdparty/freetype/include/freetype/internal/services/svgxval.h
  77. 1 1
      thirdparty/freetype/include/freetype/internal/services/svkern.h
  78. 1 1
      thirdparty/freetype/include/freetype/internal/services/svmetric.h
  79. 84 41
      thirdparty/freetype/include/freetype/internal/services/svmm.h
  80. 1 1
      thirdparty/freetype/include/freetype/internal/services/svotval.h
  81. 1 1
      thirdparty/freetype/include/freetype/internal/services/svpfr.h
  82. 1 1
      thirdparty/freetype/include/freetype/internal/services/svpostnm.h
  83. 1 1
      thirdparty/freetype/include/freetype/internal/services/svprop.h
  84. 1 1
      thirdparty/freetype/include/freetype/internal/services/svpscmap.h
  85. 1 1
      thirdparty/freetype/include/freetype/internal/services/svpsinfo.h
  86. 1 1
      thirdparty/freetype/include/freetype/internal/services/svsfnt.h
  87. 1 1
      thirdparty/freetype/include/freetype/internal/services/svttcmap.h
  88. 1 1
      thirdparty/freetype/include/freetype/internal/services/svtteng.h
  89. 1 1
      thirdparty/freetype/include/freetype/internal/services/svttglyf.h
  90. 1 1
      thirdparty/freetype/include/freetype/internal/services/svwinfnt.h
  91. 1 1
      thirdparty/freetype/include/freetype/internal/sfnt.h
  92. 1 1
      thirdparty/freetype/include/freetype/internal/svginterface.h
  93. 3 3
      thirdparty/freetype/include/freetype/internal/t1types.h
  94. 1 1
      thirdparty/freetype/include/freetype/internal/tttypes.h
  95. 1 1
      thirdparty/freetype/include/freetype/internal/wofftypes.h
  96. 1 1
      thirdparty/freetype/include/freetype/otsvg.h
  97. 1 1
      thirdparty/freetype/include/freetype/t1tables.h
  98. 1 1
      thirdparty/freetype/include/freetype/ttnameid.h
  99. 3 3
      thirdparty/freetype/include/freetype/tttables.h
  100. 1 1
      thirdparty/freetype/include/freetype/tttags.h

+ 2 - 1
modules/text_server_adv/SCsub

@@ -297,6 +297,7 @@ if env["builtin_icu4c"]:
         "common/lsr.cpp",
         "common/lsr.cpp",
         "common/lstmbe.cpp",
         "common/lstmbe.cpp",
         "common/messagepattern.cpp",
         "common/messagepattern.cpp",
+        "common/mlbe.cpp",
         "common/normalizer2.cpp",
         "common/normalizer2.cpp",
         "common/normalizer2impl.cpp",
         "common/normalizer2impl.cpp",
         "common/normlzr.cpp",
         "common/normlzr.cpp",
@@ -457,7 +458,7 @@ if env["builtin_icu4c"]:
     ]
     ]
     thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
     thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
 
 
-    icu_data_name = "icudt72l.dat"
+    icu_data_name = "icudt73l.dat"
 
 
     if env.editor_build:
     if env.editor_build:
         env_icu.Depends("#thirdparty/icu4c/icudata.gen.h", "#thirdparty/icu4c/" + icu_data_name)
         env_icu.Depends("#thirdparty/icu4c/icudata.gen.h", "#thirdparty/icu4c/" + icu_data_name)

+ 2 - 1
modules/text_server_adv/gdextension_build/SConstruct

@@ -519,6 +519,7 @@ thirdparty_icu_sources = [
     "common/lsr.cpp",
     "common/lsr.cpp",
     "common/lstmbe.cpp",
     "common/lstmbe.cpp",
     "common/messagepattern.cpp",
     "common/messagepattern.cpp",
+    "common/mlbe.cpp",
     "common/normalizer2.cpp",
     "common/normalizer2.cpp",
     "common/normalizer2impl.cpp",
     "common/normalizer2impl.cpp",
     "common/normlzr.cpp",
     "common/normlzr.cpp",
@@ -679,7 +680,7 @@ thirdparty_icu_sources = [
 ]
 ]
 thirdparty_icu_sources = [thirdparty_icu_dir + file for file in thirdparty_icu_sources]
 thirdparty_icu_sources = [thirdparty_icu_dir + file for file in thirdparty_icu_sources]
 
 
-icu_data_name = "icudt72l.dat"
+icu_data_name = "icudt73l.dat"
 
 
 if env["static_icu_data"]:
 if env["static_icu_data"]:
     env_icu.Depends("../../../thirdparty/icu4c/icudata.gen.h", "../../../thirdparty/icu4c/" + icu_data_name)
     env_icu.Depends("../../../thirdparty/icu4c/icudata.gen.h", "../../../thirdparty/icu4c/" + icu_data_name)

+ 5 - 10
thirdparty/README.md

@@ -177,7 +177,7 @@ Files extracted from upstream source:
 ## freetype
 ## freetype
 
 
 - Upstream: https://www.freetype.org
 - Upstream: https://www.freetype.org
-- Version: 2.12.1 (e8ebfe988b5f57bfb9a3ecb13c70d9791bce9ecf, 2022)
+- Version: 2.13.0 (de8b92dd7ec634e9e2b25ef534c54a3537555c11, 2023)
 - License: FreeType License (BSD-like)
 - License: FreeType License (BSD-like)
 
 
 Files extracted from upstream source:
 Files extracted from upstream source:
@@ -188,11 +188,6 @@ Files extracted from upstream source:
 - `include/` folder, minus the `dlg` subfolder
 - `include/` folder, minus the `dlg` subfolder
 - `LICENSE.TXT` and `docs/FTL.TXT`
 - `LICENSE.TXT` and `docs/FTL.TXT`
 
 
-Some changes have been made in order to prevent LTO from removing code.
-They are marked with `// -- GODOT start --` and `// -- GODOT end --`
-comments. Apply the patches in the `patches/` folder when syncing on newer upstream
-commits.
-
 
 
 ## glad
 ## glad
 
 
@@ -251,7 +246,7 @@ Files extracted from upstream source:
 ## harfbuzz
 ## harfbuzz
 
 
 - Upstream: https://github.com/harfbuzz/harfbuzz
 - Upstream: https://github.com/harfbuzz/harfbuzz
-- Version: 7.1.0 (60841e26187576bff477c1a09ee2ffe544844abc, 2023)
+- Version: 7.3.0 (4584bcdc326564829d3cee3572386c90e4fd1974, 2023)
 - License: MIT
 - License: MIT
 
 
 Files extracted from upstream source:
 Files extracted from upstream source:
@@ -265,7 +260,7 @@ Files extracted from upstream source:
 ## icu4c
 ## icu4c
 
 
 - Upstream: https://github.com/unicode-org/icu
 - Upstream: https://github.com/unicode-org/icu
-- Version: 72.1 (ff3514f257ea10afe7e710e9f946f68d256704b1, 2022)
+- Version: 73.1 (5861e1fd52f1d7673eee38bc3c965aa18b336062, 2023)
 - License: Unicode
 - License: Unicode
 
 
 Files extracted from upstream source:
 Files extracted from upstream source:
@@ -277,14 +272,14 @@ Files extracted from upstream source:
 
 
 Files generated from upstream source:
 Files generated from upstream source:
 
 
-- the `icudt72l.dat` built with the provided `godot_data.json` config file (see
+- the `icudt73l.dat` built with the provided `godot_data.json` config file (see
   https://github.com/unicode-org/icu/blob/master/docs/userguide/icu_data/buildtool.md
   https://github.com/unicode-org/icu/blob/master/docs/userguide/icu_data/buildtool.md
   for instructions).
   for instructions).
 
 
 - Step 1: Build ICU with default options - `./runConfigureICU {PLATFORM} && make`.
 - Step 1: Build ICU with default options - `./runConfigureICU {PLATFORM} && make`.
 - Step 2: Reconfigure ICU with custom data config - `ICU_DATA_FILTER_FILE={GODOT_SOURCE}/thirdparty/icu4c/godot_data.json ./runConfigureICU {PLATFORM} --with-data-packaging=common`.
 - Step 2: Reconfigure ICU with custom data config - `ICU_DATA_FILTER_FILE={GODOT_SOURCE}/thirdparty/icu4c/godot_data.json ./runConfigureICU {PLATFORM} --with-data-packaging=common`.
 - Step 3: Delete `data/out` folder and rebuild data - `cd data && rm -rf ./out && make`.
 - Step 3: Delete `data/out` folder and rebuild data - `cd data && rm -rf ./out && make`.
-- Step 4: Copy `source/data/out/icudt72l.dat` to the `{GODOT_SOURCE}/thirdparty/icu4c/icudt72l.dat`.
+- Step 4: Copy `source/data/out/icudt73l.dat` to the `{GODOT_SOURCE}/thirdparty/icu4c/icudt73l.dat`.
 
 
 
 
 ## jpeg-compressor
 ## jpeg-compressor

+ 5 - 1
thirdparty/freetype/LICENSE.TXT

@@ -29,12 +29,16 @@ 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
 that  of the  X Window  System.   It is  compatible to  the above  two
 licenses (see files `src/bdf/README`  and `src/pcf/README`).  The same
 licenses (see files `src/bdf/README`  and `src/pcf/README`).  The same
 holds   for   the   source    code   files   `src/base/fthash.c`   and
 holds   for   the   source    code   files   `src/base/fthash.c`   and
-`include/freetype/internal/fthash.h`; they wer part  of the BDF driver
+`include/freetype/internal/fthash.h`; they were part of the BDF driver
 in earlier FreeType versions.
 in earlier FreeType versions.
 
 
 The gzip  module uses the  zlib license (see  `src/gzip/zlib.h`) which
 The gzip  module uses the  zlib license (see  `src/gzip/zlib.h`) which
 too is compatible to the above two licenses.
 too is compatible to the above two licenses.
 
 
+The files `src/autofit/ft-hb.c` and `src/autofit/ft-hb.h` contain code
+taken almost  verbatim from the  HarfBuzz file `hb-ft.cc`,  which uses
+the 'Old MIT' license, compatible to the above two licenses.
+
 The  MD5 checksum  support  (only used  for  debugging in  development
 The  MD5 checksum  support  (only used  for  debugging in  development
 builds) is in the public domain.
 builds) is in the public domain.
 
 

+ 1 - 1
thirdparty/freetype/include/freetype/config/ftconfig.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/config/ftheader.h

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

+ 27 - 9
thirdparty/freetype/include/freetype/config/ftoption.h

@@ -4,7 +4,7 @@
  *
  *
  *   User-selectable configuration macros (specification only).
  *   User-selectable configuration macros (specification only).
  *
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 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,
@@ -461,9 +461,9 @@ FT_BEGIN_HEADER
    *   while compiling in 'release' mode):
    *   while compiling in 'release' mode):
    *
    *
    *   ```
    *   ```
-   *     _af_debug_disable_horz_hints
-   *     _af_debug_disable_vert_hints
-   *     _af_debug_disable_blue_hints
+   *     af_debug_disable_horz_hints_
+   *     af_debug_disable_vert_hints_
+   *     af_debug_disable_blue_hints_
    *   ```
    *   ```
    *
    *
    *   Additionally, the following functions provide dumps of various
    *   Additionally, the following functions provide dumps of various
@@ -480,7 +480,7 @@ FT_BEGIN_HEADER
    *   As an argument, they use another global variable:
    *   As an argument, they use another global variable:
    *
    *
    *   ```
    *   ```
-   *     _af_debug_hints
+   *     af_debug_hints_
    *   ```
    *   ```
    *
    *
    *   Please have a look at the `ftgrid` demo program to see how those
    *   Please have a look at the `ftgrid` demo program to see how those
@@ -584,12 +584,12 @@ FT_BEGIN_HEADER
   /**************************************************************************
   /**************************************************************************
    *
    *
    * Define `TT_CONFIG_OPTION_POSTSCRIPT_NAMES` if you want to be able to
    * Define `TT_CONFIG_OPTION_POSTSCRIPT_NAMES` if you want to be able to
-   * load and enumerate the glyph Postscript names in a TrueType or OpenType
+   * load and enumerate Postscript names of glyphs in a TrueType or OpenType
    * file.
    * file.
    *
    *
-   * Note that when you do not compile the 'psnames' module by undefining the
-   * above `FT_CONFIG_OPTION_POSTSCRIPT_NAMES`, the 'sfnt' module will
-   * contain additional code used to read the PS Names table from a font.
+   * Note that if you do not compile the 'psnames' module by undefining the
+   * above `FT_CONFIG_OPTION_POSTSCRIPT_NAMES` macro, the 'sfnt' module will
+   * contain additional code to read the PostScript name table from a font.
    *
    *
    * (By default, the module uses 'psnames' to extract glyph names.)
    * (By default, the module uses 'psnames' to extract glyph names.)
    */
    */
@@ -739,6 +739,24 @@ FT_BEGIN_HEADER
 #define TT_CONFIG_OPTION_GX_VAR_SUPPORT
 #define TT_CONFIG_OPTION_GX_VAR_SUPPORT
 
 
 
 
+  /**************************************************************************
+   *
+   * Define `TT_CONFIG_OPTION_NO_BORING_EXPANSION` if you want to exclude
+   * support for 'boring' OpenType specification expansions.
+   *
+   *   https://github.com/harfbuzz/boring-expansion-spec
+   *
+   * Right now, the following features are covered:
+   *
+   *   - 'avar' version 2.0
+   *
+   * Most likely, this is a temporary configuration option to be removed in
+   * the near future, since it is assumed that eventually those features are
+   * added to the OpenType standard.
+   */
+/* #define TT_CONFIG_OPTION_NO_BORING_EXPANSION */
+
+
   /**************************************************************************
   /**************************************************************************
    *
    *
    * Define `TT_CONFIG_OPTION_BDF` if you want to include support for an
    * Define `TT_CONFIG_OPTION_BDF` if you want to include support for an

+ 1 - 1
thirdparty/freetype/include/freetype/config/ftstdlib.h

@@ -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-2022 by
+ * Copyright (C) 2002-2023 by
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  *
  *
  * This file is part of the FreeType project, and may only be used,
  * This file is part of the FreeType project, and may only be used,

+ 1 - 1
thirdparty/freetype/include/freetype/config/integer-types.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/config/mac-support.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/config/public-macros.h

@@ -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-2022 by
+ * Copyright (C) 2020-2023 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,

+ 120 - 112
thirdparty/freetype/include/freetype/freetype.h

@@ -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-2022 by
+ * Copyright (C) 1996-2023 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,
@@ -215,7 +215,6 @@ FT_BEGIN_HEADER
    *   FT_Get_Char_Index
    *   FT_Get_Char_Index
    *   FT_Get_First_Char
    *   FT_Get_First_Char
    *   FT_Get_Next_Char
    *   FT_Get_Next_Char
-   *   FT_Get_Name_Index
    *   FT_Load_Char
    *   FT_Load_Char
    *
    *
    *   FT_OPEN_MEMORY
    *   FT_OPEN_MEMORY
@@ -254,14 +253,15 @@ FT_BEGIN_HEADER
    *   FT_Get_Kerning
    *   FT_Get_Kerning
    *   FT_Kerning_Mode
    *   FT_Kerning_Mode
    *   FT_Get_Track_Kerning
    *   FT_Get_Track_Kerning
-   *   FT_Get_Glyph_Name
-   *   FT_Get_Postscript_Name
    *
    *
    *   FT_CharMapRec
    *   FT_CharMapRec
    *   FT_Select_Charmap
    *   FT_Select_Charmap
    *   FT_Set_Charmap
    *   FT_Set_Charmap
    *   FT_Get_Charmap_Index
    *   FT_Get_Charmap_Index
    *
    *
+   *   FT_Get_Name_Index
+   *   FT_Get_Glyph_Name
+   *   FT_Get_Postscript_Name
    *   FT_Get_FSType_Flags
    *   FT_Get_FSType_Flags
    *   FT_Get_SubGlyph_Info
    *   FT_Get_SubGlyph_Info
    *
    *
@@ -646,7 +646,7 @@ FT_BEGIN_HEADER
    *
    *
    * @note:
    * @note:
    *   Despite the name, this enumeration lists specific character
    *   Despite the name, this enumeration lists specific character
-   *   repertories (i.e., charsets), and not text encoding methods (e.g.,
+   *   repertoires (i.e., charsets), and not text encoding methods (e.g.,
    *   UTF-8, UTF-16, etc.).
    *   UTF-8, UTF-16, etc.).
    *
    *
    *   Other encodings might be defined in the future.
    *   Other encodings might be defined in the future.
@@ -779,7 +779,7 @@ FT_BEGIN_HEADER
    *   `encoding_id`.  If, for example, `encoding_id` is `TT_MAC_ID_ROMAN`
    *   `encoding_id`.  If, for example, `encoding_id` is `TT_MAC_ID_ROMAN`
    *   and the language ID (minus~1) is `TT_MAC_LANGID_GREEK`, it is the
    *   and the language ID (minus~1) is `TT_MAC_LANGID_GREEK`, it is the
    *   Greek encoding, not Roman.  `TT_MAC_ID_ARABIC` with
    *   Greek encoding, not Roman.  `TT_MAC_ID_ARABIC` with
-   *   `TT_MAC_LANGID_FARSI` means the Farsi variant the Arabic encoding.
+   *   `TT_MAC_LANGID_FARSI` means the Farsi variant of the Arabic encoding.
    */
    */
   typedef enum  FT_Encoding_
   typedef enum  FT_Encoding_
   {
   {
@@ -1167,9 +1167,9 @@ 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 return the vector (0,0).  Note that FreeType doesn't
-   *     handle kerning data from the SFNT 'GPOS' table (as present in many
-   *     OpenType fonts).
+   *     function always returns the vector (0,0).  Note that FreeType
+   *     doesn't handle kerning data from the SFNT 'GPOS' table (as present
+   *     in many OpenType fonts).
    *
    *
    *   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.
@@ -1892,13 +1892,13 @@ FT_BEGIN_HEADER
    *     The advance width of the unhinted glyph.  Its value is expressed in
    *     The advance width of the unhinted glyph.  Its value is expressed in
    *     16.16 fractional pixels, unless @FT_LOAD_LINEAR_DESIGN is set when
    *     16.16 fractional pixels, unless @FT_LOAD_LINEAR_DESIGN is set when
    *     loading the glyph.  This field can be important to perform correct
    *     loading the glyph.  This field can be important to perform correct
-   *     WYSIWYG layout.  Only relevant for outline glyphs.
+   *     WYSIWYG layout.  Only relevant for scalable glyphs.
    *
    *
    *   linearVertAdvance ::
    *   linearVertAdvance ::
    *     The advance height of the unhinted glyph.  Its value is expressed in
    *     The advance height of the unhinted glyph.  Its value is expressed in
    *     16.16 fractional pixels, unless @FT_LOAD_LINEAR_DESIGN is set when
    *     16.16 fractional pixels, unless @FT_LOAD_LINEAR_DESIGN is set when
    *     loading the glyph.  This field can be important to perform correct
    *     loading the glyph.  This field can be important to perform correct
-   *     WYSIWYG layout.  Only relevant for outline glyphs.
+   *     WYSIWYG layout.  Only relevant for scalable glyphs.
    *
    *
    *   advance ::
    *   advance ::
    *     This shorthand is, depending on @FT_LOAD_IGNORE_TRANSFORM, the
    *     This shorthand is, depending on @FT_LOAD_IGNORE_TRANSFORM, the
@@ -2593,8 +2593,8 @@ FT_BEGIN_HEADER
    *   stream attachments.
    *   stream attachments.
    */
    */
   FT_EXPORT( FT_Error )
   FT_EXPORT( FT_Error )
-  FT_Attach_Stream( FT_Face        face,
-                    FT_Open_Args*  parameters );
+  FT_Attach_Stream( FT_Face              face,
+                    const FT_Open_Args*  parameters );
 
 
 
 
   /**************************************************************************
   /**************************************************************************
@@ -3077,7 +3077,7 @@ FT_BEGIN_HEADER
    *
    *
    *   FT_LOAD_NO_HINTING ::
    *   FT_LOAD_NO_HINTING ::
    *     Disable hinting.  This generally generates 'blurrier' bitmap glyphs
    *     Disable hinting.  This generally generates 'blurrier' bitmap glyphs
-   *     when the glyph are rendered in any of the anti-aliased modes.  See
+   *     when the glyphs are rendered in any of the anti-aliased modes.  See
    *     also the note below.
    *     also the note below.
    *
    *
    *     This flag is implied by @FT_LOAD_NO_SCALE.
    *     This flag is implied by @FT_LOAD_NO_SCALE.
@@ -3434,7 +3434,7 @@ FT_BEGIN_HEADER
    *     are not interested in the value.
    *     are not interested in the value.
    *
    *
    *   delta ::
    *   delta ::
-   *     A pointer a translation vector.  Set this to NULL if you are not
+   *     A pointer to a translation vector.  Set this to NULL if you are not
    *     interested in the value.
    *     interested in the value.
    *
    *
    * @since:
    * @since:
@@ -3559,9 +3559,10 @@ FT_BEGIN_HEADER
    *
    *
    *   2. The `sdf` rasterizer has limited support for handling intersecting
    *   2. The `sdf` rasterizer has limited support for handling intersecting
    *      contours and *cannot* handle self-intersecting contours whatsoever.
    *      contours and *cannot* handle self-intersecting contours whatsoever.
-   *      Self-intersection happens when a single connected contour intersect
-   *      itself at some point; having these in your font definitely pose a
-   *      problem to the rasterizer and cause artifacts, too.
+   *      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
    *   3. Generating SDF for really small glyphs may result in undesirable
    *      output; the pixel grid (which stores distance information) becomes
    *      output; the pixel grid (which stores distance information) becomes
@@ -3840,89 +3841,6 @@ FT_BEGIN_HEADER
                         FT_Fixed*  akerning );
                         FT_Fixed*  akerning );
 
 
 
 
-  /**************************************************************************
-   *
-   * @function:
-   *   FT_Get_Glyph_Name
-   *
-   * @description:
-   *   Retrieve the ASCII name of a given glyph in a face.  This only works
-   *   for those faces where @FT_HAS_GLYPH_NAMES(face) returns~1.
-   *
-   * @input:
-   *   face ::
-   *     A handle to a source face object.
-   *
-   *   glyph_index ::
-   *     The glyph index.
-   *
-   *   buffer_max ::
-   *     The maximum number of bytes available in the buffer.
-   *
-   * @output:
-   *   buffer ::
-   *     A pointer to a target buffer where the name is copied to.
-   *
-   * @return:
-   *   FreeType error code.  0~means success.
-   *
-   * @note:
-   *   An error is returned if the face doesn't provide glyph names or if the
-   *   glyph index is invalid.  In all cases of failure, the first byte of
-   *   `buffer` is set to~0 to indicate an empty name.
-   *
-   *   The glyph name is truncated to fit within the buffer if it is too
-   *   long.  The returned string is always zero-terminated.
-   *
-   *   Be aware that FreeType reorders glyph indices internally so that glyph
-   *   index~0 always corresponds to the 'missing glyph' (called '.notdef').
-   *
-   *   This function always returns an error if the config macro
-   *   `FT_CONFIG_OPTION_NO_GLYPH_NAMES` is not defined in `ftoption.h`.
-   */
-  FT_EXPORT( FT_Error )
-  FT_Get_Glyph_Name( FT_Face     face,
-                     FT_UInt     glyph_index,
-                     FT_Pointer  buffer,
-                     FT_UInt     buffer_max );
-
-
-  /**************************************************************************
-   *
-   * @function:
-   *   FT_Get_Postscript_Name
-   *
-   * @description:
-   *   Retrieve the ASCII PostScript name of a given face, if available.
-   *   This only works with PostScript, TrueType, and OpenType fonts.
-   *
-   * @input:
-   *   face ::
-   *     A handle to the source face object.
-   *
-   * @return:
-   *   A pointer to the face's PostScript name.  `NULL` if unavailable.
-   *
-   * @note:
-   *   The returned pointer is owned by the face and is destroyed with it.
-   *
-   *   For variation fonts, this string changes if you select a different
-   *   instance, and you have to call `FT_Get_PostScript_Name` again to
-   *   retrieve it.  FreeType follows Adobe TechNote #5902, 'Generating
-   *   PostScript Names for Fonts Using OpenType Font Variations'.
-   *
-   *     https://download.macromedia.com/pub/developer/opentype/tech-notes/5902.AdobePSNameGeneration.html
-   *
-   *   [Since 2.9] Special PostScript names for named instances are only
-   *   returned if the named instance is set with @FT_Set_Named_Instance (and
-   *   the font has corresponding entries in its 'fvar' table).  If
-   *   @FT_IS_VARIATION returns true, the algorithmically derived PostScript
-   *   name is provided, not looking up special entries for named instances.
-   */
-  FT_EXPORT( const char* )
-  FT_Get_Postscript_Name( FT_Face  face );
-
-
   /**************************************************************************
   /**************************************************************************
    *
    *
    * @function:
    * @function:
@@ -4243,7 +4161,8 @@ FT_BEGIN_HEADER
    *   FT_Get_Name_Index
    *   FT_Get_Name_Index
    *
    *
    * @description:
    * @description:
-   *   Return the glyph index of a given glyph name.
+   *   Return the glyph index of a given glyph name.  This only works
+   *   for those faces where @FT_HAS_GLYPH_NAMES returns true.
    *
    *
    * @input:
    * @input:
    *   face ::
    *   face ::
@@ -4254,12 +4173,107 @@ FT_BEGIN_HEADER
    *
    *
    * @return:
    * @return:
    *   The glyph index.  0~means 'undefined character code'.
    *   The glyph index.  0~means 'undefined character code'.
+   *
+   * @note:
+   *   Acceptable glyph names might come from the [Adobe Glyph
+   *   List](https://github.com/adobe-type-tools/agl-aglfn).  See
+   *   @FT_Get_Glyph_Name for the inverse functionality.
+   *
+   *   This function has limited capabilities if the config macro
+   *   `FT_CONFIG_OPTION_POSTSCRIPT_NAMES` is not defined in `ftoption.h`:
+   *   It then works only for fonts that actually embed glyph names (which
+   *   many recent OpenType fonts do not).
    */
    */
   FT_EXPORT( FT_UInt )
   FT_EXPORT( FT_UInt )
   FT_Get_Name_Index( FT_Face           face,
   FT_Get_Name_Index( FT_Face           face,
                      const FT_String*  glyph_name );
                      const FT_String*  glyph_name );
 
 
 
 
+  /**************************************************************************
+   *
+   * @function:
+   *   FT_Get_Glyph_Name
+   *
+   * @description:
+   *   Retrieve the ASCII name of a given glyph in a face.  This only works
+   *   for those faces where @FT_HAS_GLYPH_NAMES returns true.
+   *
+   * @input:
+   *   face ::
+   *     A handle to a source face object.
+   *
+   *   glyph_index ::
+   *     The glyph index.
+   *
+   *   buffer_max ::
+   *     The maximum number of bytes available in the buffer.
+   *
+   * @output:
+   *   buffer ::
+   *     A pointer to a target buffer where the name is copied to.
+   *
+   * @return:
+   *   FreeType error code.  0~means success.
+   *
+   * @note:
+   *   An error is returned if the face doesn't provide glyph names or if the
+   *   glyph index is invalid.  In all cases of failure, the first byte of
+   *   `buffer` is set to~0 to indicate an empty name.
+   *
+   *   The glyph name is truncated to fit within the buffer if it is too
+   *   long.  The returned string is always zero-terminated.
+   *
+   *   Be aware that FreeType reorders glyph indices internally so that glyph
+   *   index~0 always corresponds to the 'missing glyph' (called '.notdef').
+   *
+   *   This function has limited capabilities if the config macro
+   *   `FT_CONFIG_OPTION_POSTSCRIPT_NAMES` is not defined in `ftoption.h`:
+   *   It then works only for fonts that actually embed glyph names (which
+   *   many recent OpenType fonts do not).
+   */
+  FT_EXPORT( FT_Error )
+  FT_Get_Glyph_Name( FT_Face     face,
+                     FT_UInt     glyph_index,
+                     FT_Pointer  buffer,
+                     FT_UInt     buffer_max );
+
+
+  /**************************************************************************
+   *
+   * @function:
+   *   FT_Get_Postscript_Name
+   *
+   * @description:
+   *   Retrieve the ASCII PostScript name of a given face, if available.
+   *   This only works with PostScript, TrueType, and OpenType fonts.
+   *
+   * @input:
+   *   face ::
+   *     A handle to the source face object.
+   *
+   * @return:
+   *   A pointer to the face's PostScript name.  `NULL` if unavailable.
+   *
+   * @note:
+   *   The returned pointer is owned by the face and is destroyed with it.
+   *
+   *   For variation fonts, this string changes if you select a different
+   *   instance, and you have to call `FT_Get_PostScript_Name` again to
+   *   retrieve it.  FreeType follows Adobe TechNote #5902, 'Generating
+   *   PostScript Names for Fonts Using OpenType Font Variations'.
+   *
+   *     https://download.macromedia.com/pub/developer/opentype/tech-notes/5902.AdobePSNameGeneration.html
+   *
+   *   [Since 2.9] Special PostScript names for named instances are only
+   *   returned if the named instance is set with @FT_Set_Named_Instance (and
+   *   the font has corresponding entries in its 'fvar' table).  If
+   *   @FT_IS_VARIATION returns true, the algorithmically derived PostScript
+   *   name is provided, not looking up special entries for named instances.
+   */
+  FT_EXPORT( const char* )
+  FT_Get_Postscript_Name( FT_Face  face );
+
+
   /**************************************************************************
   /**************************************************************************
    *
    *
    * @enum:
    * @enum:
@@ -4346,13 +4360,6 @@ FT_BEGIN_HEADER
                         FT_Matrix    *p_transform );
                         FT_Matrix    *p_transform );
 
 
 
 
-  /**************************************************************************
-   *
-   * @section:
-   *   base_interface
-   *
-   */
-
   /**************************************************************************
   /**************************************************************************
    *
    *
    * @enum:
    * @enum:
@@ -4688,7 +4695,8 @@ FT_BEGIN_HEADER
    *
    *
    * @description:
    * @description:
    *   This section contains various functions used to perform computations
    *   This section contains various functions used to perform computations
-   *   on 16.16 fixed-float numbers or 2d vectors.
+   *   on 16.16 fixed-point numbers or 2D vectors.  FreeType does not use
+   *   floating-point data types.
    *
    *
    *   **Attention**: Most arithmetic functions take `FT_Long` as arguments.
    *   **Attention**: Most arithmetic functions take `FT_Long` as arguments.
    *   For historical reasons, FreeType was designed under the assumption
    *   For historical reasons, FreeType was designed under the assumption
@@ -4941,8 +4949,8 @@ FT_BEGIN_HEADER
    *
    *
    */
    */
 #define FREETYPE_MAJOR  2
 #define FREETYPE_MAJOR  2
-#define FREETYPE_MINOR  12
-#define FREETYPE_PATCH  1
+#define FREETYPE_MINOR  13
+#define FREETYPE_PATCH  0
 
 
 
 
   /**************************************************************************
   /**************************************************************************

+ 1 - 1
thirdparty/freetype/include/freetype/ftadvanc.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/ftbbox.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/ftbdf.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/ftbitmap.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/ftbzip2.h

@@ -4,7 +4,7 @@
  *
  *
  *   Bzip2-compressed stream support.
  *   Bzip2-compressed stream support.
  *
  *
- * Copyright (C) 2010-2022 by
+ * Copyright (C) 2010-2023 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,

+ 2 - 2
thirdparty/freetype/include/freetype/ftcache.h

@@ -4,7 +4,7 @@
  *
  *
  *   FreeType Cache subsystem (specification).
  *   FreeType Cache subsystem (specification).
  *
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 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,
@@ -424,7 +424,7 @@ FT_BEGIN_HEADER
    *   pixel ::
    *   pixel ::
    *     A Boolean.  If 1, the `width` and `height` fields are interpreted as
    *     A Boolean.  If 1, the `width` and `height` fields are interpreted as
    *     integer pixel character sizes.  Otherwise, they are expressed as
    *     integer pixel character sizes.  Otherwise, they are expressed as
-   *     1/64th of points.
+   *     1/64 of points.
    *
    *
    *   x_res ::
    *   x_res ::
    *     Only used when `pixel` is value~0 to indicate the horizontal
    *     Only used when `pixel` is value~0 to indicate the horizontal

+ 1 - 1
thirdparty/freetype/include/freetype/ftcid.h

@@ -4,7 +4,7 @@
  *
  *
  *   FreeType API for accessing CID font information (specification).
  *   FreeType API for accessing CID font information (specification).
  *
  *
- * Copyright (C) 2007-2022 by
+ * Copyright (C) 2007-2023 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,

+ 52 - 103
thirdparty/freetype/include/freetype/ftcolor.h

@@ -4,7 +4,7 @@
  *
  *
  *   FreeType's glyph color management (specification).
  *   FreeType's glyph color management (specification).
  *
  *
- * Copyright (C) 2018-2022 by
+ * Copyright (C) 2018-2023 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,
@@ -456,6 +456,9 @@ FT_BEGIN_HEADER
    *                                           &iterator ) );
    *                                           &iterator ) );
    *     }
    *     }
    *   ```
    *   ```
+   *
+   * @since:
+   *   2.10
    */
    */
   FT_EXPORT( FT_Bool )
   FT_EXPORT( FT_Bool )
   FT_Get_Color_Glyph_Layer( FT_Face            face,
   FT_Get_Color_Glyph_Layer( FT_Face            face,
@@ -475,7 +478,7 @@ FT_BEGIN_HEADER
    *   extensions to the 'COLR' table, see
    *   extensions to the 'COLR' table, see
    *   'https://github.com/googlefonts/colr-gradients-spec'.
    *   'https://github.com/googlefonts/colr-gradients-spec'.
    *
    *
-   *   The enumeration values losely correspond with the format numbers of
+   *   The enumeration values loosely correspond with the format numbers of
    *   the specification: FreeType always returns a fully specified 'Paint'
    *   the specification: FreeType always returns a fully specified 'Paint'
    *   structure for the 'Transform', 'Translate', 'Scale', 'Rotate', and
    *   structure for the 'Transform', 'Translate', 'Scale', 'Rotate', and
    *   'Skew' table types even though the specification has different formats
    *   'Skew' table types even though the specification has different formats
@@ -489,9 +492,7 @@ FT_BEGIN_HEADER
    *   structures.
    *   structures.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef enum  FT_PaintFormat_
   typedef enum  FT_PaintFormat_
   {
   {
@@ -521,9 +522,10 @@ FT_BEGIN_HEADER
    *
    *
    * @description:
    * @description:
    *   This iterator object is needed for @FT_Get_Colorline_Stops.  It keeps
    *   This iterator object is needed for @FT_Get_Colorline_Stops.  It keeps
-   *   state while iterating over the stops of an @FT_ColorLine,
-   *   representing the `ColorLine` struct of the v1 extensions to 'COLR',
-   *   see 'https://github.com/googlefonts/colr-gradients-spec'.
+   *   state while iterating over the stops of an @FT_ColorLine, representing
+   *   the `ColorLine` struct of the v1 extensions to 'COLR', see
+   *   'https://github.com/googlefonts/colr-gradients-spec'.  Do not manually
+   *   modify fields of this iterator.
    *
    *
    * @fields:
    * @fields:
    *   num_color_stops ::
    *   num_color_stops ::
@@ -537,10 +539,12 @@ FT_BEGIN_HEADER
    *     An opaque pointer into 'COLR' table data.  Set by @FT_Get_Paint.
    *     An opaque pointer into 'COLR' table data.  Set by @FT_Get_Paint.
    *     Updated by @FT_Get_Colorline_Stops.
    *     Updated by @FT_Get_Colorline_Stops.
    *
    *
-   * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
+   *   read_variable ::
+   *     A boolean keeping track of whether variable color lines are to be
+   *     read.  Set by @FT_Get_Paint.
    *
    *
+   * @since:
+   *   2.13
    */
    */
   typedef struct  FT_ColorStopIterator_
   typedef struct  FT_ColorStopIterator_
   {
   {
@@ -549,6 +553,8 @@ FT_BEGIN_HEADER
 
 
     FT_Byte*  p;
     FT_Byte*  p;
 
 
+    FT_Bool  read_variable;
+
   } FT_ColorStopIterator;
   } FT_ColorStopIterator;
 
 
 
 
@@ -569,9 +575,7 @@ FT_BEGIN_HEADER
    *     Alpha transparency value multiplied with the value from 'CPAL'.
    *     Alpha transparency value multiplied with the value from 'CPAL'.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef struct  FT_ColorIndex_
   typedef struct  FT_ColorIndex_
   {
   {
@@ -592,19 +596,18 @@ FT_BEGIN_HEADER
    *
    *
    * @fields:
    * @fields:
    *   stop_offset ::
    *   stop_offset ::
-   *     The stop offset between 0 and 1 along the gradient.
+   *     The stop offset along the gradient, expressed as a 16.16 fixed-point
+   *     coordinate.
    *
    *
    *   color ::
    *   color ::
    *     The color information for this stop, see @FT_ColorIndex.
    *     The color information for this stop, see @FT_ColorIndex.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef struct  FT_ColorStop_
   typedef struct  FT_ColorStop_
   {
   {
-    FT_F2Dot14     stop_offset;
+    FT_Fixed       stop_offset;
     FT_ColorIndex  color;
     FT_ColorIndex  color;
 
 
   } FT_ColorStop;
   } FT_ColorStop;
@@ -621,9 +624,7 @@ FT_BEGIN_HEADER
    *   It describes how the gradient fill continues at the other boundaries.
    *   It describes how the gradient fill continues at the other boundaries.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef enum  FT_PaintExtend_
   typedef enum  FT_PaintExtend_
   {
   {
@@ -653,9 +654,7 @@ FT_BEGIN_HEADER
    *     actual @FT_ColorStop's.
    *     actual @FT_ColorStop's.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef struct  FT_ColorLine_
   typedef struct  FT_ColorLine_
   {
   {
@@ -699,9 +698,7 @@ FT_BEGIN_HEADER
    *     y translation.
    *     y translation.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef struct  FT_Affine_23_
   typedef struct  FT_Affine_23_
   {
   {
@@ -722,9 +719,7 @@ FT_BEGIN_HEADER
    *   'https://www.w3.org/TR/compositing-1/#porterduffcompositingoperators'.
    *   'https://www.w3.org/TR/compositing-1/#porterduffcompositingoperators'.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef enum  FT_Composite_Mode_
   typedef enum  FT_Composite_Mode_
   {
   {
@@ -786,9 +781,7 @@ FT_BEGIN_HEADER
    *     to be provided.  Do not set this value.
    *     to be provided.  Do not set this value.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef struct  FT_Opaque_Paint_
   typedef struct  FT_Opaque_Paint_
   {
   {
@@ -815,9 +808,7 @@ FT_BEGIN_HEADER
    *     The layer iterator that describes the layers of this paint.
    *     The layer iterator that describes the layers of this paint.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef struct  FT_PaintColrLayers_
   typedef struct  FT_PaintColrLayers_
   {
   {
@@ -842,9 +833,7 @@ FT_BEGIN_HEADER
    *     The color information for this solid paint, see @FT_ColorIndex.
    *     The color information for this solid paint, see @FT_ColorIndex.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef struct  FT_PaintSolid_
   typedef struct  FT_PaintSolid_
   {
   {
@@ -883,9 +872,7 @@ FT_BEGIN_HEADER
    *     Otherwise equal to~p0.
    *     Otherwise equal to~p0.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef struct  FT_PaintLinearGradient_
   typedef struct  FT_PaintLinearGradient_
   {
   {
@@ -908,8 +895,7 @@ FT_BEGIN_HEADER
    *   A structure representing a `PaintRadialGradient` value of the 'COLR'
    *   A structure representing a `PaintRadialGradient` value of the 'COLR'
    *   v1 extensions, see
    *   v1 extensions, see
    *   'https://github.com/googlefonts/colr-gradients-spec'.  The glyph
    *   'https://github.com/googlefonts/colr-gradients-spec'.  The glyph
-   *   layer filled with this paint is drawn filled filled with a radial
-   *   gradient.
+   *   layer filled with this paint is drawn filled with a radial gradient.
    *
    *
    * @fields:
    * @fields:
    *   colorline ::
    *   colorline ::
@@ -933,9 +919,7 @@ FT_BEGIN_HEADER
    *     units represented as a 16.16 fixed-point value.
    *     units represented as a 16.16 fixed-point value.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef struct  FT_PaintRadialGradient_
   typedef struct  FT_PaintRadialGradient_
   {
   {
@@ -983,9 +967,7 @@ FT_BEGIN_HEADER
    *     given counter-clockwise, starting from the (positive) y~axis.
    *     given counter-clockwise, starting from the (positive) y~axis.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef struct  FT_PaintSweepGradient_
   typedef struct  FT_PaintSweepGradient_
   {
   {
@@ -1016,9 +998,7 @@ FT_BEGIN_HEADER
    *     information that is filled with paint.
    *     information that is filled with paint.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef struct  FT_PaintGlyph_
   typedef struct  FT_PaintGlyph_
   {
   {
@@ -1042,9 +1022,7 @@ FT_BEGIN_HEADER
    *     this paint.
    *     this paint.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef struct  FT_PaintColrGlyph_
   typedef struct  FT_PaintColrGlyph_
   {
   {
@@ -1070,9 +1048,7 @@ FT_BEGIN_HEADER
    *     16.16 fixed-point values.
    *     16.16 fixed-point values.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef struct  FT_PaintTransform_
   typedef struct  FT_PaintTransform_
   {
   {
@@ -1105,9 +1081,7 @@ FT_BEGIN_HEADER
    *     16.16 fixed-point value.
    *     16.16 fixed-point value.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef struct  FT_PaintTranslate_
   typedef struct  FT_PaintTranslate_
   {
   {
@@ -1156,9 +1130,7 @@ FT_BEGIN_HEADER
    *     16.16 fixed-point value.
    *     16.16 fixed-point value.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward-compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef struct  FT_PaintScale_
   typedef struct  FT_PaintScale_
   {
   {
@@ -1194,16 +1166,14 @@ FT_BEGIN_HEADER
    *
    *
    *   center_x ::
    *   center_x ::
    *     The x~coordinate of the pivot point of the rotation in font
    *     The x~coordinate of the pivot point of the rotation in font
-   *     units) represented as a 16.16 fixed-point value.
+   *     units represented as a 16.16 fixed-point value.
    *
    *
    *   center_y ::
    *   center_y ::
    *     The y~coordinate of the pivot point of the rotation in font
    *     The y~coordinate of the pivot point of the rotation in font
    *     units represented as a 16.16 fixed-point value.
    *     units represented as a 16.16 fixed-point value.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
 
 
   typedef struct  FT_PaintRotate_
   typedef struct  FT_PaintRotate_
@@ -1252,9 +1222,7 @@ FT_BEGIN_HEADER
    *     represented as a 16.16 fixed-point value.
    *     represented as a 16.16 fixed-point value.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef struct  FT_PaintSkew_
   typedef struct  FT_PaintSkew_
   {
   {
@@ -1275,9 +1243,8 @@ FT_BEGIN_HEADER
    *   FT_PaintComposite
    *   FT_PaintComposite
    *
    *
    * @description:
    * @description:
-   *   A structure representing a 'COLR'v1 `PaintComposite` paint table.
-   *   Used for compositing two paints in a 'COLR' v1 directed acycling
-   *   graph.
+   *   A structure representing a 'COLR' v1 `PaintComposite` paint table.
+   *   Used for compositing two paints in a 'COLR' v1 directed acyclic graph.
    *
    *
    * @fields:
    * @fields:
    *   source_paint ::
    *   source_paint ::
@@ -1293,9 +1260,7 @@ FT_BEGIN_HEADER
    *     `source_paint` is composited onto.
    *     `source_paint` is composited onto.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef struct  FT_PaintComposite_
   typedef struct  FT_PaintComposite_
   {
   {
@@ -1339,9 +1304,7 @@ FT_BEGIN_HEADER
    *       * @FT_PaintColrGlyph
    *       * @FT_PaintColrGlyph
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef struct  FT_COLR_Paint_
   typedef struct  FT_COLR_Paint_
   {
   {
@@ -1386,9 +1349,7 @@ FT_BEGIN_HEADER
    *     Do not output an initial root transform.
    *     Do not output an initial root transform.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef enum  FT_Color_Root_Transform_
   typedef enum  FT_Color_Root_Transform_
   {
   {
@@ -1429,9 +1390,7 @@ FT_BEGIN_HEADER
    *     fixed-point coordinates in 26.6 format.
    *     fixed-point coordinates in 26.6 format.
    *
    *
    * @since:
    * @since:
-   *   2.12 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   typedef struct  FT_ClipBox_
   typedef struct  FT_ClipBox_
   {
   {
@@ -1524,9 +1483,7 @@ FT_BEGIN_HEADER
    *   error, value~0 is returned also.
    *   error, value~0 is returned also.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   FT_EXPORT( FT_Bool )
   FT_EXPORT( FT_Bool )
   FT_Get_Color_Glyph_Paint( FT_Face                  face,
   FT_Get_Color_Glyph_Paint( FT_Face                  face,
@@ -1568,9 +1525,7 @@ FT_BEGIN_HEADER
    *   and remove transforms configured using @FT_Set_Transform.
    *   and remove transforms configured using @FT_Set_Transform.
    *
    *
    * @since:
    * @since:
-   *   2.12 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   FT_EXPORT( FT_Bool )
   FT_EXPORT( FT_Bool )
   FT_Get_Color_Glyph_ClipBox( FT_Face      face,
   FT_Get_Color_Glyph_ClipBox( FT_Face      face,
@@ -1617,9 +1572,7 @@ FT_BEGIN_HEADER
    *   object can not be retrieved or any other error occurs.
    *   object can not be retrieved or any other error occurs.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   FT_EXPORT( FT_Bool )
   FT_EXPORT( FT_Bool )
   FT_Get_Paint_Layers( FT_Face            face,
   FT_Get_Paint_Layers( FT_Face            face,
@@ -1660,9 +1613,7 @@ FT_BEGIN_HEADER
    *   also.
    *   also.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   FT_EXPORT( FT_Bool )
   FT_EXPORT( FT_Bool )
   FT_Get_Colorline_Stops( FT_Face                face,
   FT_Get_Colorline_Stops( FT_Face                face,
@@ -1698,9 +1649,7 @@ FT_BEGIN_HEADER
    *   this paint or any other error occured.
    *   this paint or any other error occured.
    *
    *
    * @since:
    * @since:
-   *   2.11 -- **currently experimental only!**  There might be changes
-   *   without retaining backward compatibility of both the API and ABI.
-   *
+   *   2.13
    */
    */
   FT_EXPORT( FT_Bool )
   FT_EXPORT( FT_Bool )
   FT_Get_Paint( FT_Face         face,
   FT_Get_Paint( FT_Face         face,

+ 1 - 2
thirdparty/freetype/include/freetype/ftdriver.h

@@ -4,7 +4,7 @@
  *
  *
  *   FreeType API for controlling driver modules (specification only).
  *   FreeType API for controlling driver modules (specification only).
  *
  *
- * Copyright (C) 2017-2022 by
+ * Copyright (C) 2017-2023 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,
@@ -820,7 +820,6 @@ FT_BEGIN_HEADER
    *   2.5
    *   2.5
    */
    */
 
 
-
   /**************************************************************************
   /**************************************************************************
    *
    *
    * @property:
    * @property:

+ 1 - 1
thirdparty/freetype/include/freetype/fterrdef.h

@@ -4,7 +4,7 @@
  *
  *
  *   FreeType error codes (specification).
  *   FreeType error codes (specification).
  *
  *
- * Copyright (C) 2002-2022 by
+ * Copyright (C) 2002-2023 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,

+ 2 - 2
thirdparty/freetype/include/freetype/fterrors.h

@@ -4,7 +4,7 @@
  *
  *
  *   FreeType error code handling (specification).
  *   FreeType error code handling (specification).
  *
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 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,
@@ -29,7 +29,7 @@
    *
    *
    * @description:
    * @description:
    *   The header file `fterrors.h` (which is automatically included by
    *   The header file `fterrors.h` (which is automatically included by
-   *   `freetype.h` defines the handling of FreeType's enumeration
+   *   `freetype.h`) defines the handling of FreeType's enumeration
    *   constants.  It can also be used to generate error message strings
    *   constants.  It can also be used to generate error message strings
    *   with a small macro trick explained below.
    *   with a small macro trick explained below.
    *
    *

+ 1 - 1
thirdparty/freetype/include/freetype/ftfntfmt.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/ftgasp.h

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

+ 6 - 6
thirdparty/freetype/include/freetype/ftglyph.h

@@ -4,7 +4,7 @@
  *
  *
  *   FreeType convenience functions to handle glyphs (specification).
  *   FreeType convenience functions to handle glyphs (specification).
  *
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 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,
@@ -355,7 +355,7 @@ FT_BEGIN_HEADER
    *
    *
    * @output:
    * @output:
    *   aglyph ::
    *   aglyph ::
-   *     A handle to the glyph object.
+   *     A handle to the glyph object.  `NULL` in case of error.
    *
    *
    * @return:
    * @return:
    *   FreeType error code.  0~means success.
    *   FreeType error code.  0~means success.
@@ -385,7 +385,7 @@ FT_BEGIN_HEADER
    *
    *
    * @output:
    * @output:
    *   target ::
    *   target ::
-   *     A handle to the target glyph object.  0~in case of error.
+   *     A handle to the target glyph object.  `NULL` in case of error.
    *
    *
    * @return:
    * @return:
    *   FreeType error code.  0~means success.
    *   FreeType error code.  0~means success.
@@ -413,7 +413,7 @@ FT_BEGIN_HEADER
    *
    *
    *   delta ::
    *   delta ::
    *     A pointer to a 2d vector to apply.  Coordinates are expressed in
    *     A pointer to a 2d vector to apply.  Coordinates are expressed in
-   *     1/64th of a pixel.
+   *     1/64 of a pixel.
    *
    *
    * @return:
    * @return:
    *   FreeType error code (if not 0, the glyph format is not scalable).
    *   FreeType error code (if not 0, the glyph format is not scalable).
@@ -500,7 +500,7 @@ FT_BEGIN_HEADER
    * @output:
    * @output:
    *   acbox ::
    *   acbox ::
    *     The glyph coordinate bounding box.  Coordinates are expressed in
    *     The glyph coordinate bounding box.  Coordinates are expressed in
-   *     1/64th of pixels if it is grid-fitted.
+   *     1/64 of pixels if it is grid-fitted.
    *
    *
    * @note:
    * @note:
    *   Coordinates are relative to the glyph origin, using the y~upwards
    *   Coordinates are relative to the glyph origin, using the y~upwards
@@ -671,7 +671,7 @@ FT_BEGIN_HEADER
    *
    *
    * @input:
    * @input:
    *   glyph ::
    *   glyph ::
-   *     A handle to the target glyph object.
+   *     A handle to the target glyph object.  Can be `NULL`.
    */
    */
   FT_EXPORT( void )
   FT_EXPORT( void )
   FT_Done_Glyph( FT_Glyph  glyph );
   FT_Done_Glyph( FT_Glyph  glyph );

+ 1 - 1
thirdparty/freetype/include/freetype/ftgxval.h

@@ -4,7 +4,7 @@
  *
  *
  *   FreeType API for validating TrueTypeGX/AAT tables (specification).
  *   FreeType API for validating TrueTypeGX/AAT tables (specification).
  *
  *
- * Copyright (C) 2004-2022 by
+ * Copyright (C) 2004-2023 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.
  *
  *

+ 1 - 1
thirdparty/freetype/include/freetype/ftgzip.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/ftimage.h

@@ -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-2022 by
+ * Copyright (C) 1996-2023 by
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  *
  *
  * This file is part of the FreeType project, and may only be used,
  * This file is part of the FreeType project, and may only be used,

+ 1 - 1
thirdparty/freetype/include/freetype/ftincrem.h

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

+ 4 - 4
thirdparty/freetype/include/freetype/ftlcdfil.h

@@ -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-2022 by
+ * Copyright (C) 2006-2023 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,
@@ -137,11 +137,11 @@ FT_BEGIN_HEADER
    *
    *
    *   FT_LCD_FILTER_DEFAULT ::
    *   FT_LCD_FILTER_DEFAULT ::
    *     This is a beveled, normalized, and color-balanced five-tap filter
    *     This is a beveled, normalized, and color-balanced five-tap filter
-   *     with weights of [0x08 0x4D 0x56 0x4D 0x08] in 1/256th units.
+   *     with weights of [0x08 0x4D 0x56 0x4D 0x08] in 1/256 units.
    *
    *
    *   FT_LCD_FILTER_LIGHT ::
    *   FT_LCD_FILTER_LIGHT ::
    *     this is a boxy, normalized, and color-balanced three-tap filter with
    *     this is a boxy, normalized, and color-balanced three-tap filter with
-   *     weights of [0x00 0x55 0x56 0x55 0x00] in 1/256th units.
+   *     weights of [0x00 0x55 0x56 0x55 0x00] in 1/256 units.
    *
    *
    *   FT_LCD_FILTER_LEGACY ::
    *   FT_LCD_FILTER_LEGACY ::
    *   FT_LCD_FILTER_LEGACY1 ::
    *   FT_LCD_FILTER_LEGACY1 ::
@@ -226,7 +226,7 @@ FT_BEGIN_HEADER
    *
    *
    *   weights ::
    *   weights ::
    *     A pointer to an array; the function copies the first five bytes and
    *     A pointer to an array; the function copies the first five bytes and
-   *     uses them to specify the filter weights in 1/256th units.
+   *     uses them to specify the filter weights in 1/256 units.
    *
    *
    * @return:
    * @return:
    *   FreeType error code.  0~means success.
    *   FreeType error code.  0~means success.

+ 1 - 1
thirdparty/freetype/include/freetype/ftlist.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/ftlogging.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/ftlzw.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/ftmac.h

@@ -4,7 +4,7 @@
  *
  *
  *   Additional Mac-specific API.
  *   Additional Mac-specific API.
  *
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 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,

+ 14 - 5
thirdparty/freetype/include/freetype/ftmm.h

@@ -4,7 +4,7 @@
  *
  *
  *   FreeType Multiple Master font interface (specification).
  *   FreeType Multiple Master font interface (specification).
  *
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 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,
@@ -398,6 +398,10 @@ FT_BEGIN_HEADER
    *   FreeType error code.  0~means success.
    *   FreeType error code.  0~means success.
    *
    *
    * @note:
    * @note:
+   *   The design coordinates are 16.16 fractional values for TrueType GX and
+   *   OpenType variation fonts.  For Adobe MM fonts, the values are
+   *   integers.
+   *
    *   [Since 2.8.1] To reset all axes to the default values, call the
    *   [Since 2.8.1] To reset all axes to the default values, call the
    *   function with `num_coords` set to zero and `coords` set to `NULL`.
    *   function with `num_coords` set to zero and `coords` set to `NULL`.
    *   [Since 2.9] 'Default values' means the currently selected named
    *   [Since 2.9] 'Default values' means the currently selected named
@@ -440,6 +444,11 @@ FT_BEGIN_HEADER
    * @return:
    * @return:
    *   FreeType error code.  0~means success.
    *   FreeType error code.  0~means success.
    *
    *
+   * @note:
+   *   The design coordinates are 16.16 fractional values for TrueType GX and
+   *   OpenType variation fonts.  For Adobe MM fonts, the values are
+   *   integers.
+   *
    * @since:
    * @since:
    *   2.7.1
    *   2.7.1
    */
    */
@@ -471,9 +480,9 @@ FT_BEGIN_HEADER
    *     the number of axes, use default values for the remaining axes.
    *     the number of axes, use default values for the remaining axes.
    *
    *
    *   coords ::
    *   coords ::
-   *     The design coordinates array (each element must be between 0 and 1.0
-   *     for Adobe MM fonts, and between -1.0 and 1.0 for TrueType GX and
-   *     OpenType variation fonts).
+   *     The design coordinates array.  Each element is a 16.16 fractional
+   *     value and must be between 0 and 1.0 for Adobe MM fonts, and between
+   *     -1.0 and 1.0 for TrueType GX and OpenType variation fonts.
    *
    *
    * @return:
    * @return:
    *   FreeType error code.  0~means success.
    *   FreeType error code.  0~means success.
@@ -518,7 +527,7 @@ FT_BEGIN_HEADER
    *
    *
    * @output:
    * @output:
    *   coords ::
    *   coords ::
-   *     The normalized blend coordinates array.
+   *     The normalized blend coordinates array (as 16.16 fractional values).
    *
    *
    * @return:
    * @return:
    *   FreeType error code.  0~means success.
    *   FreeType error code.  0~means success.

+ 1 - 1
thirdparty/freetype/include/freetype/ftmodapi.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/ftmoderr.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/ftotval.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/ftoutln.h

@@ -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-2022 by
+ * Copyright (C) 1996-2023 by
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  *
  *
  * This file is part of the FreeType project, and may only be used,
  * This file is part of the FreeType project, and may only be used,

+ 1 - 1
thirdparty/freetype/include/freetype/ftparams.h

@@ -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-2022 by
+ * Copyright (C) 2017-2023 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,

+ 2 - 2
thirdparty/freetype/include/freetype/ftpfr.h

@@ -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-2022 by
+ * Copyright (C) 2002-2023 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,
@@ -161,7 +161,7 @@ FT_BEGIN_HEADER
    *
    *
    * @note:
    * @note:
    *    You can use the `x_scale` or `y_scale` results of @FT_Get_PFR_Metrics
    *    You can use the `x_scale` or `y_scale` results of @FT_Get_PFR_Metrics
-   *    to convert the advance to device subpixels (i.e., 1/64th of pixels).
+   *    to convert the advance to device subpixels (i.e., 1/64 of pixels).
    */
    */
   FT_EXPORT( FT_Error )
   FT_EXPORT( FT_Error )
   FT_Get_PFR_Advance( FT_Face   face,
   FT_Get_PFR_Advance( FT_Face   face,

+ 1 - 1
thirdparty/freetype/include/freetype/ftrender.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/ftsizes.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/ftsnames.h

@@ -7,7 +7,7 @@
  *
  *
  *   This is _not_ used to retrieve glyph names!
  *   This is _not_ used to retrieve glyph names!
  *
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 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,

+ 2 - 2
thirdparty/freetype/include/freetype/ftstroke.h

@@ -4,7 +4,7 @@
  *
  *
  *   FreeType path stroker (specification).
  *   FreeType path stroker (specification).
  *
  *
- * Copyright (C) 2002-2022 by
+ * Copyright (C) 2002-2023 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,
@@ -293,7 +293,7 @@ FT_BEGIN_HEADER
    *
    *
    *   miter_limit ::
    *   miter_limit ::
    *     The maximum reciprocal sine of half-angle at the miter join,
    *     The maximum reciprocal sine of half-angle at the miter join,
-   *     expressed as 16.16 fixed point value.
+   *     expressed as 16.16 fixed-point value.
    *
    *
    * @note:
    * @note:
    *   The `radius` is expressed in the same units as the outline
    *   The `radius` is expressed in the same units as the outline

+ 11 - 2
thirdparty/freetype/include/freetype/ftsynth.h

@@ -5,7 +5,7 @@
  *   FreeType synthesizing code for emboldening and slanting
  *   FreeType synthesizing code for emboldening and slanting
  *   (specification).
  *   (specification).
  *
  *
- * Copyright (C) 2000-2022 by
+ * Copyright (C) 2000-2023 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,
@@ -68,10 +68,19 @@ FT_BEGIN_HEADER
   FT_EXPORT( void )
   FT_EXPORT( void )
   FT_GlyphSlot_Embolden( FT_GlyphSlot  slot );
   FT_GlyphSlot_Embolden( FT_GlyphSlot  slot );
 
 
-  /* Slant an outline glyph to the right by about 12 degrees. */
+  /* Slant an outline glyph to the right by about 12 degrees.              */
   FT_EXPORT( void )
   FT_EXPORT( void )
   FT_GlyphSlot_Oblique( FT_GlyphSlot  slot );
   FT_GlyphSlot_Oblique( FT_GlyphSlot  slot );
 
 
+  /* Slant an outline glyph by a given sine of an angle.  You can apply    */
+  /* slant along either x- or y-axis by choosing a corresponding non-zero  */
+  /* argument.  If both slants are non-zero, some affine transformation    */
+  /* will result.                                                          */
+  FT_EXPORT( void )
+  FT_GlyphSlot_Slant( FT_GlyphSlot  slot,
+                      FT_Fixed      xslant,
+                      FT_Fixed      yslant );
+
   /* */
   /* */
 
 
 
 

+ 10 - 4
thirdparty/freetype/include/freetype/ftsystem.h

@@ -4,7 +4,7 @@
  *
  *
  *   FreeType low-level system interface definition (specification).
  *   FreeType low-level system interface definition (specification).
  *
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 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,
@@ -229,7 +229,8 @@ FT_BEGIN_HEADER
    *     A handle to the source stream.
    *     A handle to the source stream.
    *
    *
    *   offset ::
    *   offset ::
-   *     The offset of read in stream (always from start).
+   *     The offset from the start of the stream to seek to if this is a seek
+   *     operation (see note).
    *
    *
    *   buffer ::
    *   buffer ::
    *     The address of the read buffer.
    *     The address of the read buffer.
@@ -241,8 +242,13 @@ FT_BEGIN_HEADER
    *   The number of bytes effectively read by the stream.
    *   The number of bytes effectively read by the stream.
    *
    *
    * @note:
    * @note:
-   *   This function might be called to perform a seek or skip operation with
-   *   a `count` of~0.  A non-zero return value then indicates an error.
+   *   This function performs a seek *or* a read operation depending on the
+   *   argument values.  If `count` is zero, the operation is a seek to
+   *   `offset` bytes.  If `count` is >~0, the operation is a read of `count`
+   *   bytes from the current position in the stream, and the `offset` value
+   *   should be ignored.
+   *
+   *   For seek operations, a non-zero return value indicates an error.
    *
    *
    */
    */
   typedef unsigned long
   typedef unsigned long

+ 1 - 1
thirdparty/freetype/include/freetype/fttrigon.h

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

+ 5 - 2
thirdparty/freetype/include/freetype/fttypes.h

@@ -4,7 +4,7 @@
  *
  *
  *   FreeType simple types definitions (specification only).
  *   FreeType simple types definitions (specification only).
  *
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 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,
@@ -45,7 +45,10 @@ FT_BEGIN_HEADER
    * @description:
    * @description:
    *   This section contains the basic data types defined by FreeType~2,
    *   This section contains the basic data types defined by FreeType~2,
    *   ranging from simple scalar types to bitmap descriptors.  More
    *   ranging from simple scalar types to bitmap descriptors.  More
-   *   font-specific structures are defined in a different section.
+   *   font-specific structures are defined in a different section.  Note
+   *   that FreeType does not use floating-point data types.  Fractional
+   *   values are represented by fixed-point integers, with lower bits
+   *   storing the fractional part.
    *
    *
    * @order:
    * @order:
    *   FT_Byte
    *   FT_Byte

+ 1 - 1
thirdparty/freetype/include/freetype/ftwinfnt.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/autohint.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/cffotypes.h

@@ -4,7 +4,7 @@
  *
  *
  *   Basic OpenType/CFF object type definitions (specification).
  *   Basic OpenType/CFF object type definitions (specification).
  *
  *
- * Copyright (C) 2017-2022 by
+ * Copyright (C) 2017-2023 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,

+ 2 - 2
thirdparty/freetype/include/freetype/internal/cfftypes.h

@@ -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-2022 by
+ * Copyright (C) 1996-2023 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,
@@ -315,7 +315,7 @@ FT_BEGIN_HEADER
     /* The normal stack then points to these values instead of the DICT   */
     /* The normal stack then points to these values instead of the DICT   */
     /* because all other operators in Private DICT clear the stack.       */
     /* because all other operators in Private DICT clear the stack.       */
     /* `blend_stack' could be cleared at each operator other than blend.  */
     /* `blend_stack' could be cleared at each operator other than blend.  */
-    /* Blended values are stored as 5-byte fixed point values.            */
+    /* Blended values are stored as 5-byte fixed-point values.            */
 
 
     FT_Byte*  blend_stack;    /* base of stack allocation     */
     FT_Byte*  blend_stack;    /* base of stack allocation     */
     FT_Byte*  blend_top;      /* first empty slot             */
     FT_Byte*  blend_top;      /* first empty slot             */

+ 15 - 2
thirdparty/freetype/include/freetype/internal/compiler-macros.h

@@ -4,7 +4,7 @@
  *
  *
  *   Compiler-specific macro definitions used internally by FreeType.
  *   Compiler-specific macro definitions used internally by FreeType.
  *
  *
- * Copyright (C) 2020-2022 by
+ * Copyright (C) 2020-2023 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,
@@ -34,6 +34,19 @@ FT_BEGIN_HEADER
 #  if defined( _COMPILER_VERSION ) && ( _COMPILER_VERSION >= 730 )
 #  if defined( _COMPILER_VERSION ) && ( _COMPILER_VERSION >= 730 )
 #    pragma set woff 3505
 #    pragma set woff 3505
 #  endif
 #  endif
+#endif
+
+  /* Newer compilers warn for fall-through case statements. */
+#ifndef FALL_THROUGH
+#  if ( defined( __STDC_VERSION__ ) && __STDC_VERSION__ > 201710L ) || \
+      ( defined( __cplusplus ) && __cplusplus > 201402L )
+#    define FALL_THROUGH  [[__fallthrough__]]
+#  elif ( defined( __GNUC__ ) && __GNUC__ >= 7 )          || \
+        ( defined( __clang__ ) && __clang_major__ >= 10 )
+#    define FALL_THROUGH  __attribute__(( __fallthrough__ ))
+#  else
+#    define FALL_THROUGH  ( (void)0 )
+#  endif
 #endif
 #endif
 
 
   /*
   /*
@@ -258,7 +271,7 @@ FT_BEGIN_HEADER
    * To export a variable, use `FT_EXPORT_VAR`.
    * To export a variable, use `FT_EXPORT_VAR`.
    */
    */
 
 
-  /* See `freetype/config/compiler_macros.h` for the `FT_EXPORT` definition */
+  /* See `freetype/config/public-macros.h` for the `FT_EXPORT` definition */
 #define FT_EXPORT_DEF( x )  FT_FUNCTION_DEFINITION( x )
 #define FT_EXPORT_DEF( x )  FT_FUNCTION_DEFINITION( x )
 
 
   /*
   /*

+ 40 - 6
thirdparty/freetype/include/freetype/internal/ftcalc.h

@@ -4,7 +4,7 @@
  *
  *
  *   Arithmetic computations (specification).
  *   Arithmetic computations (specification).
  *
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 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,
@@ -278,6 +278,40 @@ FT_BEGIN_HEADER
                       FT_Long  c );
                       FT_Long  c );
 
 
 
 
+  /**************************************************************************
+   *
+   * @function:
+   *   FT_MulAddFix
+   *
+   * @description:
+   *   Compute `(s[0] * f[0] + s[1] * f[1] + ...) / 0x10000`, where `s[n]` is
+   *   usually a 16.16 scalar.
+   *
+   * @input:
+   *   s ::
+   *     The array of scalars.
+   *   f ::
+   *     The array of factors.
+   *   count ::
+   *     The number of entries in the array.
+   *
+   * @return:
+   *   The result of `(s[0] * f[0] + s[1] * f[1] + ...) / 0x10000`.
+   *
+   * @note:
+   *   This function is currently used for the scaled delta computation of
+   *   variation stores.  It internally uses 64-bit data types when
+   *   available, otherwise it emulates 64-bit math by using 32-bit
+   *   operations, which produce a correct result but most likely at a slower
+   *   performance in comparison to the implementation base on `int64_t`.
+   *
+   */
+  FT_BASE( FT_Int32 )
+  FT_MulAddFix( FT_Fixed*  s,
+                FT_Int32*  f,
+                FT_UInt    count );
+
+
   /*
   /*
    * A variant of FT_Matrix_Multiply which scales its result afterwards.  The
    * A variant of FT_Matrix_Multiply which scales its result afterwards.  The
    * idea is that both `a' and `b' are scaled by factors of 10 so that the
    * idea is that both `a' and `b' are scaled by factors of 10 so that the
@@ -413,11 +447,11 @@ FT_BEGIN_HEADER
   extern __inline FT_Int32
   extern __inline FT_Int32
   FT_MSB_i386( FT_UInt32  x );
   FT_MSB_i386( FT_UInt32  x );
 
 
-#pragma aux FT_MSB_i386 =     \
-  "bsr eax, eax"              \
-  parm [eax] nomemory         \
-  value [eax]                 \
-  modify exact [eax] nomemory;
+#pragma aux FT_MSB_i386 =             \
+  "bsr eax, eax"                      \
+  __parm [__eax] __nomemory           \
+  __value [__eax]                     \
+  __modify __exact [__eax] __nomemory;
 
 
 #define FT_MSB( x )  FT_MSB_i386( x )
 #define FT_MSB( x )  FT_MSB_i386( x )
 
 

+ 1 - 1
thirdparty/freetype/include/freetype/internal/ftdebug.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/ftdrv.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/ftgloadr.h

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

+ 7 - 7
thirdparty/freetype/include/freetype/internal/ftmemory.h

@@ -4,7 +4,7 @@
  *
  *
  *   The FreeType memory management macros (specification).
  *   The FreeType memory management macros (specification).
  *
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 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,
@@ -96,15 +96,15 @@ extern "C++"
 
 
 #ifdef FT_DEBUG_MEMORY
 #ifdef FT_DEBUG_MEMORY
 
 
-  FT_BASE( const char* )  _ft_debug_file;
-  FT_BASE( long )         _ft_debug_lineno;
+  FT_BASE( const char* )  ft_debug_file_;
+  FT_BASE( long )         ft_debug_lineno_;
 
 
-#define FT_DEBUG_INNER( exp )  ( _ft_debug_file   = __FILE__, \
-                                 _ft_debug_lineno = __LINE__, \
+#define FT_DEBUG_INNER( exp )  ( ft_debug_file_   = __FILE__, \
+                                 ft_debug_lineno_ = __LINE__, \
                                  (exp) )
                                  (exp) )
 
 
-#define FT_ASSIGNP_INNER( p, exp )  ( _ft_debug_file   = __FILE__, \
-                                      _ft_debug_lineno = __LINE__, \
+#define FT_ASSIGNP_INNER( p, exp )  ( ft_debug_file_   = __FILE__, \
+                                      ft_debug_lineno_ = __LINE__, \
                                       FT_ASSIGNP( p, exp ) )
                                       FT_ASSIGNP( p, exp ) )
 
 
 #else /* !FT_DEBUG_MEMORY */
 #else /* !FT_DEBUG_MEMORY */

+ 85 - 0
thirdparty/freetype/include/freetype/internal/ftmmtypes.h

@@ -0,0 +1,85 @@
+/****************************************************************************
+ *
+ * ftmmtypes.h
+ *
+ *   OpenType Variations type definitions for internal use
+ *   with the multi-masters service (specification).
+ *
+ * Copyright (C) 2022-2023 by
+ * David Turner, Robert Wilhelm, Werner Lemberg, George Williams, and
+ * Dominik Röttsches.
+ *
+ * This file is part of the FreeType project, and may only be used,
+ * modified, and distributed under the terms of the FreeType project
+ * license, LICENSE.TXT.  By continuing to use, modify, or distribute
+ * this file you indicate that you have read the license and
+ * understand and accept it fully.
+ *
+ */
+
+
+#ifndef FTMMTYPES_H_
+#define FTMMTYPES_H_
+
+FT_BEGIN_HEADER
+
+
+  typedef FT_Int32  FT_ItemVarDelta;
+
+  typedef struct  GX_ItemVarDataRec_
+  {
+    FT_UInt            itemCount;       /* number of delta sets per item    */
+    FT_UInt            regionIdxCount;  /* number of region indices         */
+    FT_UInt*           regionIndices;   /* array of `regionCount' indices;  */
+                                        /* these index `varRegionList'      */
+    FT_ItemVarDelta*   deltaSet;        /* array of `itemCount' deltas      */
+                                        /* use `innerIndex' for this array  */
+
+  } GX_ItemVarDataRec, *GX_ItemVarData;
+
+
+  /* contribution of one axis to a region */
+  typedef struct  GX_AxisCoordsRec_
+  {
+    FT_Fixed  startCoord;
+    FT_Fixed  peakCoord;      /* zero means no effect (factor = 1) */
+    FT_Fixed  endCoord;
+
+  } GX_AxisCoordsRec, *GX_AxisCoords;
+
+
+  typedef struct  GX_VarRegionRec_
+  {
+    GX_AxisCoords  axisList;               /* array of axisCount records */
+
+  } GX_VarRegionRec, *GX_VarRegion;
+
+
+  /* item variation store */
+  typedef struct  GX_ItemVarStoreRec_
+  {
+    FT_UInt         dataCount;
+    GX_ItemVarData  varData;            /* array of dataCount records;     */
+                                        /* use `outerIndex' for this array */
+    FT_UShort     axisCount;
+    FT_UInt       regionCount;          /* total number of regions defined */
+    GX_VarRegion  varRegionList;
+
+  } GX_ItemVarStoreRec, *GX_ItemVarStore;
+
+
+  typedef struct  GX_DeltaSetIdxMapRec_
+  {
+    FT_ULong  mapCount;
+    FT_UInt*  outerIndex;               /* indices to item var data */
+    FT_UInt*  innerIndex;               /* indices to delta set     */
+
+  } GX_DeltaSetIdxMapRec, *GX_DeltaSetIdxMap;
+
+
+FT_END_HEADER
+
+#endif /* FTMMTYPES_H_ */
+
+
+/* END */

+ 1 - 1
thirdparty/freetype/include/freetype/internal/ftobjs.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/ftpsprop.h

@@ -4,7 +4,7 @@
  *
  *
  *   Get and set properties of PostScript drivers (specification).
  *   Get and set properties of PostScript drivers (specification).
  *
  *
- * Copyright (C) 2017-2022 by
+ * Copyright (C) 2017-2023 by
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  *
  *
  * This file is part of the FreeType project, and may only be used,
  * This file is part of the FreeType project, and may only be used,

+ 1 - 1
thirdparty/freetype/include/freetype/internal/ftrfork.h

@@ -4,7 +4,7 @@
  *
  *
  *   Embedded resource forks accessor (specification).
  *   Embedded resource forks accessor (specification).
  *
  *
- * Copyright (C) 2004-2022 by
+ * Copyright (C) 2004-2023 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,

+ 1 - 1
thirdparty/freetype/include/freetype/internal/ftserv.h

@@ -4,7 +4,7 @@
  *
  *
  *   The FreeType services (specification only).
  *   The FreeType services (specification only).
  *
  *
- * Copyright (C) 2003-2022 by
+ * Copyright (C) 2003-2023 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,

+ 54 - 54
thirdparty/freetype/include/freetype/internal/ftstream.h

@@ -4,7 +4,7 @@
  *
  *
  *   Stream handling (specification).
  *   Stream handling (specification).
  *
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 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,
@@ -238,42 +238,42 @@ FT_BEGIN_HEADER
 #define FT_NEXT_BYTE( buffer )         \
 #define FT_NEXT_BYTE( buffer )         \
           ( (unsigned char)*buffer++ )
           ( (unsigned char)*buffer++ )
 
 
-#define FT_NEXT_SHORT( buffer )                                   \
-          ( (short)( buffer += 2, FT_PEEK_SHORT( buffer - 2 ) ) )
+#define FT_NEXT_SHORT( buffer )                        \
+          ( buffer += 2, FT_PEEK_SHORT( buffer - 2 ) )
 
 
-#define FT_NEXT_USHORT( buffer )                                            \
-          ( (unsigned short)( buffer += 2, FT_PEEK_USHORT( buffer - 2 ) ) )
+#define FT_NEXT_USHORT( buffer )                        \
+          ( buffer += 2, FT_PEEK_USHORT( buffer - 2 ) )
 
 
-#define FT_NEXT_OFF3( buffer )                                  \
-          ( (long)( buffer += 3, FT_PEEK_OFF3( buffer - 3 ) ) )
+#define FT_NEXT_OFF3( buffer )                        \
+          ( buffer += 3, FT_PEEK_OFF3( buffer - 3 ) )
 
 
-#define FT_NEXT_UOFF3( buffer )                                           \
-          ( (unsigned long)( buffer += 3, FT_PEEK_UOFF3( buffer - 3 ) ) )
+#define FT_NEXT_UOFF3( buffer )                        \
+          ( buffer += 3, FT_PEEK_UOFF3( buffer - 3 ) )
 
 
-#define FT_NEXT_LONG( buffer )                                  \
-          ( (long)( buffer += 4, FT_PEEK_LONG( buffer - 4 ) ) )
+#define FT_NEXT_LONG( buffer )                        \
+          ( buffer += 4, FT_PEEK_LONG( buffer - 4 ) )
 
 
-#define FT_NEXT_ULONG( buffer )                                           \
-          ( (unsigned long)( buffer += 4, FT_PEEK_ULONG( buffer - 4 ) ) )
+#define FT_NEXT_ULONG( buffer )                        \
+          ( buffer += 4, FT_PEEK_ULONG( buffer - 4 ) )
 
 
 
 
-#define FT_NEXT_SHORT_LE( buffer )                                   \
-          ( (short)( buffer += 2, FT_PEEK_SHORT_LE( buffer - 2 ) ) )
+#define FT_NEXT_SHORT_LE( buffer )                        \
+          ( buffer += 2, FT_PEEK_SHORT_LE( buffer - 2 ) )
 
 
-#define FT_NEXT_USHORT_LE( buffer )                                            \
-          ( (unsigned short)( buffer += 2, FT_PEEK_USHORT_LE( buffer - 2 ) ) )
+#define FT_NEXT_USHORT_LE( buffer )                        \
+          ( buffer += 2, FT_PEEK_USHORT_LE( buffer - 2 ) )
 
 
-#define FT_NEXT_OFF3_LE( buffer )                                  \
-          ( (long)( buffer += 3, FT_PEEK_OFF3_LE( buffer - 3 ) ) )
+#define FT_NEXT_OFF3_LE( buffer )                        \
+          ( buffer += 3, FT_PEEK_OFF3_LE( buffer - 3 ) )
 
 
-#define FT_NEXT_UOFF3_LE( buffer )                                           \
-          ( (unsigned long)( buffer += 3, FT_PEEK_UOFF3_LE( buffer - 3 ) ) )
+#define FT_NEXT_UOFF3_LE( buffer )                        \
+          ( buffer += 3, FT_PEEK_UOFF3_LE( buffer - 3 ) )
 
 
-#define FT_NEXT_LONG_LE( buffer )                                  \
-          ( (long)( buffer += 4, FT_PEEK_LONG_LE( buffer - 4 ) ) )
+#define FT_NEXT_LONG_LE( buffer )                        \
+          ( buffer += 4, FT_PEEK_LONG_LE( buffer - 4 ) )
 
 
-#define FT_NEXT_ULONG_LE( buffer )                                           \
-          ( (unsigned long)( buffer += 4, FT_PEEK_ULONG_LE( buffer - 4 ) ) )
+#define FT_NEXT_ULONG_LE( buffer )                        \
+          ( buffer += 4, FT_PEEK_ULONG_LE( buffer - 4 ) )
 
 
 
 
   /**************************************************************************
   /**************************************************************************
@@ -307,17 +307,17 @@ FT_BEGIN_HEADER
 
 
 #define FT_GET_CHAR()       FT_GET_MACRO( FT_Stream_GetByte, FT_Char )
 #define FT_GET_CHAR()       FT_GET_MACRO( FT_Stream_GetByte, FT_Char )
 #define FT_GET_BYTE()       FT_GET_MACRO( FT_Stream_GetByte, FT_Byte )
 #define FT_GET_BYTE()       FT_GET_MACRO( FT_Stream_GetByte, FT_Byte )
-#define FT_GET_SHORT()      FT_GET_MACRO( FT_Stream_GetUShort, FT_Short )
-#define FT_GET_USHORT()     FT_GET_MACRO( FT_Stream_GetUShort, FT_UShort )
-#define FT_GET_UOFF3()      FT_GET_MACRO( FT_Stream_GetUOffset, FT_ULong )
-#define FT_GET_LONG()       FT_GET_MACRO( FT_Stream_GetULong, FT_Long )
-#define FT_GET_ULONG()      FT_GET_MACRO( FT_Stream_GetULong, FT_ULong )
-#define FT_GET_TAG4()       FT_GET_MACRO( FT_Stream_GetULong, FT_ULong )
-
-#define FT_GET_SHORT_LE()   FT_GET_MACRO( FT_Stream_GetUShortLE, FT_Short )
-#define FT_GET_USHORT_LE()  FT_GET_MACRO( FT_Stream_GetUShortLE, FT_UShort )
-#define FT_GET_LONG_LE()    FT_GET_MACRO( FT_Stream_GetULongLE, FT_Long )
-#define FT_GET_ULONG_LE()   FT_GET_MACRO( FT_Stream_GetULongLE, FT_ULong )
+#define FT_GET_SHORT()      FT_GET_MACRO( FT_Stream_GetUShort, FT_Int16 )
+#define FT_GET_USHORT()     FT_GET_MACRO( FT_Stream_GetUShort, FT_UInt16 )
+#define FT_GET_UOFF3()      FT_GET_MACRO( FT_Stream_GetUOffset, FT_UInt32 )
+#define FT_GET_LONG()       FT_GET_MACRO( FT_Stream_GetULong, FT_Int32 )
+#define FT_GET_ULONG()      FT_GET_MACRO( FT_Stream_GetULong, FT_UInt32 )
+#define FT_GET_TAG4()       FT_GET_MACRO( FT_Stream_GetULong, FT_UInt32 )
+
+#define FT_GET_SHORT_LE()   FT_GET_MACRO( FT_Stream_GetUShortLE, FT_Int16 )
+#define FT_GET_USHORT_LE()  FT_GET_MACRO( FT_Stream_GetUShortLE, FT_UInt16 )
+#define FT_GET_LONG_LE()    FT_GET_MACRO( FT_Stream_GetULongLE, FT_Int32 )
+#define FT_GET_ULONG_LE()   FT_GET_MACRO( FT_Stream_GetULongLE, FT_UInt32 )
 #endif
 #endif
 
 
 
 
@@ -334,16 +334,16 @@ FT_BEGIN_HEADER
    */
    */
 #define FT_READ_BYTE( var )       FT_READ_MACRO( FT_Stream_ReadByte, FT_Byte, var )
 #define FT_READ_BYTE( var )       FT_READ_MACRO( FT_Stream_ReadByte, FT_Byte, var )
 #define FT_READ_CHAR( var )       FT_READ_MACRO( FT_Stream_ReadByte, FT_Char, var )
 #define FT_READ_CHAR( var )       FT_READ_MACRO( FT_Stream_ReadByte, FT_Char, var )
-#define FT_READ_SHORT( var )      FT_READ_MACRO( FT_Stream_ReadUShort, FT_Short, var )
-#define FT_READ_USHORT( var )     FT_READ_MACRO( FT_Stream_ReadUShort, FT_UShort, var )
-#define FT_READ_UOFF3( var )      FT_READ_MACRO( FT_Stream_ReadUOffset, FT_ULong, var )
-#define FT_READ_LONG( var )       FT_READ_MACRO( FT_Stream_ReadULong, FT_Long, var )
-#define FT_READ_ULONG( var )      FT_READ_MACRO( FT_Stream_ReadULong, FT_ULong, var )
+#define FT_READ_SHORT( var )      FT_READ_MACRO( FT_Stream_ReadUShort, FT_Int16, var )
+#define FT_READ_USHORT( var )     FT_READ_MACRO( FT_Stream_ReadUShort, FT_UInt16, var )
+#define FT_READ_UOFF3( var )      FT_READ_MACRO( FT_Stream_ReadUOffset, FT_UInt32, var )
+#define FT_READ_LONG( var )       FT_READ_MACRO( FT_Stream_ReadULong, FT_Int32, var )
+#define FT_READ_ULONG( var )      FT_READ_MACRO( FT_Stream_ReadULong, FT_UInt32, var )
 
 
-#define FT_READ_SHORT_LE( var )   FT_READ_MACRO( FT_Stream_ReadUShortLE, FT_Short, var )
-#define FT_READ_USHORT_LE( var )  FT_READ_MACRO( FT_Stream_ReadUShortLE, FT_UShort, var )
-#define FT_READ_LONG_LE( var )    FT_READ_MACRO( FT_Stream_ReadULongLE, FT_Long, var )
-#define FT_READ_ULONG_LE( var )   FT_READ_MACRO( FT_Stream_ReadULongLE, FT_ULong, var )
+#define FT_READ_SHORT_LE( var )   FT_READ_MACRO( FT_Stream_ReadUShortLE, FT_Int16, var )
+#define FT_READ_USHORT_LE( var )  FT_READ_MACRO( FT_Stream_ReadUShortLE, FT_UInt16, var )
+#define FT_READ_LONG_LE( var )    FT_READ_MACRO( FT_Stream_ReadULongLE, FT_Int32, var )
+#define FT_READ_ULONG_LE( var )   FT_READ_MACRO( FT_Stream_ReadULongLE, FT_UInt32, var )
 
 
 
 
 #ifndef FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM
 #ifndef FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM
@@ -459,23 +459,23 @@ FT_BEGIN_HEADER
   FT_Stream_GetByte( FT_Stream  stream );
   FT_Stream_GetByte( FT_Stream  stream );
 
 
   /* read a 16-bit big-endian unsigned integer from an entered frame */
   /* read a 16-bit big-endian unsigned integer from an entered frame */
-  FT_BASE( FT_UShort )
+  FT_BASE( FT_UInt16 )
   FT_Stream_GetUShort( FT_Stream  stream );
   FT_Stream_GetUShort( FT_Stream  stream );
 
 
   /* read a 24-bit big-endian unsigned integer from an entered frame */
   /* read a 24-bit big-endian unsigned integer from an entered frame */
-  FT_BASE( FT_ULong )
+  FT_BASE( FT_UInt32 )
   FT_Stream_GetUOffset( FT_Stream  stream );
   FT_Stream_GetUOffset( FT_Stream  stream );
 
 
   /* read a 32-bit big-endian unsigned integer from an entered frame */
   /* read a 32-bit big-endian unsigned integer from an entered frame */
-  FT_BASE( FT_ULong )
+  FT_BASE( FT_UInt32 )
   FT_Stream_GetULong( FT_Stream  stream );
   FT_Stream_GetULong( FT_Stream  stream );
 
 
   /* read a 16-bit little-endian unsigned integer from an entered frame */
   /* read a 16-bit little-endian unsigned integer from an entered frame */
-  FT_BASE( FT_UShort )
+  FT_BASE( FT_UInt16 )
   FT_Stream_GetUShortLE( FT_Stream  stream );
   FT_Stream_GetUShortLE( FT_Stream  stream );
 
 
   /* read a 32-bit little-endian unsigned integer from an entered frame */
   /* read a 32-bit little-endian unsigned integer from an entered frame */
-  FT_BASE( FT_ULong )
+  FT_BASE( FT_UInt32 )
   FT_Stream_GetULongLE( FT_Stream  stream );
   FT_Stream_GetULongLE( FT_Stream  stream );
 
 
 
 
@@ -485,7 +485,7 @@ FT_BEGIN_HEADER
                       FT_Error*  error );
                       FT_Error*  error );
 
 
   /* read a 16-bit big-endian unsigned integer from a stream */
   /* read a 16-bit big-endian unsigned integer from a stream */
-  FT_BASE( FT_UShort )
+  FT_BASE( FT_UInt16 )
   FT_Stream_ReadUShort( FT_Stream  stream,
   FT_Stream_ReadUShort( FT_Stream  stream,
                         FT_Error*  error );
                         FT_Error*  error );
 
 
@@ -495,17 +495,17 @@ FT_BEGIN_HEADER
                          FT_Error*  error );
                          FT_Error*  error );
 
 
   /* read a 32-bit big-endian integer from a stream */
   /* read a 32-bit big-endian integer from a stream */
-  FT_BASE( FT_ULong )
+  FT_BASE( FT_UInt32 )
   FT_Stream_ReadULong( FT_Stream  stream,
   FT_Stream_ReadULong( FT_Stream  stream,
                        FT_Error*  error );
                        FT_Error*  error );
 
 
   /* read a 16-bit little-endian unsigned integer from a stream */
   /* read a 16-bit little-endian unsigned integer from a stream */
-  FT_BASE( FT_UShort )
+  FT_BASE( FT_UInt16 )
   FT_Stream_ReadUShortLE( FT_Stream  stream,
   FT_Stream_ReadUShortLE( FT_Stream  stream,
                           FT_Error*  error );
                           FT_Error*  error );
 
 
   /* read a 32-bit little-endian unsigned integer from a stream */
   /* read a 32-bit little-endian unsigned integer from a stream */
-  FT_BASE( FT_ULong )
+  FT_BASE( FT_UInt32 )
   FT_Stream_ReadULongLE( FT_Stream  stream,
   FT_Stream_ReadULongLE( FT_Stream  stream,
                          FT_Error*  error );
                          FT_Error*  error );
 
 

+ 1 - 1
thirdparty/freetype/include/freetype/internal/fttrace.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/ftvalid.h

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

+ 1 - 5
thirdparty/freetype/include/freetype/internal/psaux.h

@@ -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-2022 by
+ * Copyright (C) 1996-2023 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,
@@ -132,9 +132,6 @@ FT_BEGIN_HEADER
    *   max_elems ::
    *   max_elems ::
    *     The maximum number of elements in table.
    *     The maximum number of elements in table.
    *
    *
-   *   num_elems ::
-   *     The current number of elements in table.
-   *
    *   elements ::
    *   elements ::
    *     A table of element addresses within the block.
    *     A table of element addresses within the block.
    *
    *
@@ -155,7 +152,6 @@ FT_BEGIN_HEADER
     FT_ULong           init;
     FT_ULong           init;
 
 
     FT_Int             max_elems;
     FT_Int             max_elems;
-    FT_Int             num_elems;
     FT_Byte**          elements;       /* addresses of table elements */
     FT_Byte**          elements;       /* addresses of table elements */
     FT_UInt*           lengths;        /* lengths of table elements   */
     FT_UInt*           lengths;        /* lengths of table elements   */
 
 

+ 3 - 3
thirdparty/freetype/include/freetype/internal/pshints.h

@@ -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-2022 by
+ * Copyright (C) 2001-2023 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,
@@ -294,7 +294,7 @@ FT_BEGIN_HEADER
    *
    *
    * @note:
    * @note:
    *   On input, all points within the outline are in font coordinates. On
    *   On input, all points within the outline are in font coordinates. On
-   *   output, they are in 1/64th of pixels.
+   *   output, they are in 1/64 of pixels.
    *
    *
    *   The scaling transformation is taken from the 'globals' object which
    *   The scaling transformation is taken from the 'globals' object which
    *   must correspond to the same font as the glyph.
    *   must correspond to the same font as the glyph.
@@ -607,7 +607,7 @@ FT_BEGIN_HEADER
    *
    *
    * @note:
    * @note:
    *   On input, all points within the outline are in font coordinates. On
    *   On input, all points within the outline are in font coordinates. On
-   *   output, they are in 1/64th of pixels.
+   *   output, they are in 1/64 of pixels.
    *
    *
    *   The scaling transformation is taken from the 'globals' object which
    *   The scaling transformation is taken from the 'globals' object which
    *   must correspond to the same font than the glyph.
    *   must correspond to the same font than the glyph.

+ 1 - 1
thirdparty/freetype/include/freetype/internal/services/svbdf.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/services/svcfftl.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/services/svcid.h

@@ -4,7 +4,7 @@
  *
  *
  *   The FreeType CID font services (specification).
  *   The FreeType CID font services (specification).
  *
  *
- * Copyright (C) 2007-2022 by
+ * Copyright (C) 2007-2023 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,

+ 1 - 1
thirdparty/freetype/include/freetype/internal/services/svfntfmt.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/services/svgldict.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/services/svgxval.h

@@ -4,7 +4,7 @@
  *
  *
  *   FreeType API for validating TrueTypeGX/AAT tables (specification).
  *   FreeType API for validating TrueTypeGX/AAT tables (specification).
  *
  *
- * Copyright (C) 2004-2022 by
+ * Copyright (C) 2004-2023 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.
  *
  *

+ 1 - 1
thirdparty/freetype/include/freetype/internal/services/svkern.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/services/svmetric.h

@@ -4,7 +4,7 @@
  *
  *
  *   The FreeType services for metrics variations (specification).
  *   The FreeType services for metrics variations (specification).
  *
  *
- * Copyright (C) 2016-2022 by
+ * Copyright (C) 2016-2023 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,

+ 84 - 41
thirdparty/freetype/include/freetype/internal/services/svmm.h

@@ -4,8 +4,8 @@
  *
  *
  *   The FreeType Multiple Masters and GX var services (specification).
  *   The FreeType Multiple Masters and GX var services (specification).
  *
  *
- * Copyright (C) 2003-2022 by
- * David Turner, Robert Wilhelm, and Werner Lemberg.
+ * Copyright (C) 2003-2023 by
+ * 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,
  * modified, and distributed under the terms of the FreeType project
  * modified, and distributed under the terms of the FreeType project
@@ -19,7 +19,9 @@
 #ifndef SVMM_H_
 #ifndef SVMM_H_
 #define SVMM_H_
 #define SVMM_H_
 
 
+#include <freetype/ftmm.h>
 #include <freetype/internal/ftserv.h>
 #include <freetype/internal/ftserv.h>
+#include <freetype/internal/ftmmtypes.h>
 
 
 
 
 FT_BEGIN_HEADER
 FT_BEGIN_HEADER
@@ -96,53 +98,94 @@ FT_BEGIN_HEADER
                                   FT_UInt*   len,
                                   FT_UInt*   len,
                                   FT_Fixed*  weight_vector );
                                   FT_Fixed*  weight_vector );
 
 
+  typedef FT_Error
+  (*FT_Var_Load_Delta_Set_Idx_Map_Func)( FT_Face            face,
+                                         FT_ULong           offset,
+                                         GX_DeltaSetIdxMap  map,
+                                         GX_ItemVarStore    itemStore,
+                                         FT_ULong           table_len );
+
+  typedef FT_Error
+  (*FT_Var_Load_Item_Var_Store_Func)( FT_Face          face,
+                                      FT_ULong         offset,
+                                      GX_ItemVarStore  itemStore );
+
+  typedef FT_ItemVarDelta
+  (*FT_Var_Get_Item_Delta_Func)( FT_Face          face,
+                                 GX_ItemVarStore  itemStore,
+                                 FT_UInt          outerIndex,
+                                 FT_UInt          innerIndex );
+
+  typedef void
+  (*FT_Var_Done_Item_Var_Store_Func)( FT_Face          face,
+                                      GX_ItemVarStore  itemStore );
+
+  typedef void
+  (*FT_Var_Done_Delta_Set_Idx_Map_Func)( FT_Face            face,
+                                         GX_DeltaSetIdxMap  deltaSetIdxMap );
+
 
 
   FT_DEFINE_SERVICE( MultiMasters )
   FT_DEFINE_SERVICE( MultiMasters )
   {
   {
-    FT_Get_MM_Func               get_mm;
-    FT_Set_MM_Design_Func        set_mm_design;
-    FT_Set_MM_Blend_Func         set_mm_blend;
-    FT_Get_MM_Blend_Func         get_mm_blend;
-    FT_Get_MM_Var_Func           get_mm_var;
-    FT_Set_Var_Design_Func       set_var_design;
-    FT_Get_Var_Design_Func       get_var_design;
-    FT_Set_Instance_Func         set_instance;
-    FT_Set_MM_WeightVector_Func  set_mm_weightvector;
-    FT_Get_MM_WeightVector_Func  get_mm_weightvector;
+    FT_Get_MM_Func                        get_mm;
+    FT_Set_MM_Design_Func                 set_mm_design;
+    FT_Set_MM_Blend_Func                  set_mm_blend;
+    FT_Get_MM_Blend_Func                  get_mm_blend;
+    FT_Get_MM_Var_Func                    get_mm_var;
+    FT_Set_Var_Design_Func                set_var_design;
+    FT_Get_Var_Design_Func                get_var_design;
+    FT_Set_Instance_Func                  set_instance;
+    FT_Set_MM_WeightVector_Func           set_mm_weightvector;
+    FT_Get_MM_WeightVector_Func           get_mm_weightvector;
 
 
     /* for internal use; only needed for code sharing between modules */
     /* for internal use; only needed for code sharing between modules */
-    FT_Get_Var_Blend_Func  get_var_blend;
-    FT_Done_Blend_Func     done_blend;
+    FT_Var_Load_Delta_Set_Idx_Map_Func    load_delta_set_idx_map;
+    FT_Var_Load_Item_Var_Store_Func       load_item_var_store;
+    FT_Var_Get_Item_Delta_Func            get_item_delta;
+    FT_Var_Done_Item_Var_Store_Func       done_item_var_store;
+    FT_Var_Done_Delta_Set_Idx_Map_Func    done_delta_set_idx_map;
+    FT_Get_Var_Blend_Func                 get_var_blend;
+    FT_Done_Blend_Func                    done_blend;
   };
   };
 
 
 
 
-#define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_,            \
-                                           get_mm_,           \
-                                           set_mm_design_,    \
-                                           set_mm_blend_,     \
-                                           get_mm_blend_,     \
-                                           get_mm_var_,       \
-                                           set_var_design_,   \
-                                           get_var_design_,   \
-                                           set_instance_,     \
-                                           set_weightvector_, \
-                                           get_weightvector_, \
-                                           get_var_blend_,    \
-                                           done_blend_ )      \
-  static const FT_Service_MultiMastersRec  class_ =           \
-  {                                                           \
-    get_mm_,                                                  \
-    set_mm_design_,                                           \
-    set_mm_blend_,                                            \
-    get_mm_blend_,                                            \
-    get_mm_var_,                                              \
-    set_var_design_,                                          \
-    get_var_design_,                                          \
-    set_instance_,                                            \
-    set_weightvector_,                                        \
-    get_weightvector_,                                        \
-    get_var_blend_,                                           \
-    done_blend_                                               \
+#define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_,                  \
+                                           get_mm_,                 \
+                                           set_mm_design_,          \
+                                           set_mm_blend_,           \
+                                           get_mm_blend_,           \
+                                           get_mm_var_,             \
+                                           set_var_design_,         \
+                                           get_var_design_,         \
+                                           set_instance_,           \
+                                           set_weightvector_,       \
+                                           get_weightvector_,       \
+                                           load_delta_set_idx_map_, \
+                                           load_item_var_store_,    \
+                                           get_item_delta_,         \
+                                           done_item_var_store_,    \
+                                           done_delta_set_idx_map_, \
+                                           get_var_blend_,          \
+                                           done_blend_ )            \
+  static const FT_Service_MultiMastersRec  class_ =                 \
+  {                                                                 \
+    get_mm_,                                                        \
+    set_mm_design_,                                                 \
+    set_mm_blend_,                                                  \
+    get_mm_blend_,                                                  \
+    get_mm_var_,                                                    \
+    set_var_design_,                                                \
+    get_var_design_,                                                \
+    set_instance_,                                                  \
+    set_weightvector_,                                              \
+    get_weightvector_,                                              \
+    load_delta_set_idx_map_,                                        \
+    load_item_var_store_,                                           \
+    get_item_delta_,                                                \
+    done_item_var_store_,                                           \
+    done_delta_set_idx_map_,                                        \
+    get_var_blend_,                                                 \
+    done_blend_                                                     \
   };
   };
 
 
   /* */
   /* */

+ 1 - 1
thirdparty/freetype/include/freetype/internal/services/svotval.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/services/svpfr.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/services/svpostnm.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/services/svprop.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/services/svpscmap.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/services/svpsinfo.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/services/svsfnt.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/services/svttcmap.h

@@ -4,7 +4,7 @@
  *
  *
  *   The FreeType TrueType/sfnt cmap extra information service.
  *   The FreeType TrueType/sfnt cmap extra information service.
  *
  *
- * Copyright (C) 2003-2022 by
+ * Copyright (C) 2003-2023 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.
  *
  *

+ 1 - 1
thirdparty/freetype/include/freetype/internal/services/svtteng.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/services/svttglyf.h

@@ -4,7 +4,7 @@
  *
  *
  *   The FreeType TrueType glyph service.
  *   The FreeType TrueType glyph service.
  *
  *
- * Copyright (C) 2007-2022 by
+ * Copyright (C) 2007-2023 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,

+ 1 - 1
thirdparty/freetype/include/freetype/internal/services/svwinfnt.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/sfnt.h

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

+ 1 - 1
thirdparty/freetype/include/freetype/internal/svginterface.h

@@ -4,7 +4,7 @@
  *
  *
  *   Interface of ot-svg module (specification only).
  *   Interface of ot-svg module (specification only).
  *
  *
- * Copyright (C) 2022 by
+ * Copyright (C) 2022-2023 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,

+ 3 - 3
thirdparty/freetype/include/freetype/internal/t1types.h

@@ -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-2022 by
+ * Copyright (C) 1996-2023 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,
@@ -172,8 +172,8 @@ FT_BEGIN_HEADER
   {
   {
     FT_Bool        IsCIDFont;
     FT_Bool        IsCIDFont;
     FT_BBox        FontBBox;
     FT_BBox        FontBBox;
-    FT_Fixed       Ascender;
-    FT_Fixed       Descender;
+    FT_Fixed       Ascender;     /* optional, mind the zero */
+    FT_Fixed       Descender;    /* optional, mind the zero */
     AFM_TrackKern  TrackKerns;   /* free if non-NULL */
     AFM_TrackKern  TrackKerns;   /* free if non-NULL */
     FT_UInt        NumTrackKern;
     FT_UInt        NumTrackKern;
     AFM_KernPair   KernPairs;    /* free if non-NULL */
     AFM_KernPair   KernPairs;    /* free if non-NULL */

+ 1 - 1
thirdparty/freetype/include/freetype/internal/tttypes.h

@@ -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-2022 by
+ * Copyright (C) 1996-2023 by
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  *
  *
  * This file is part of the FreeType project, and may only be used,
  * This file is part of the FreeType project, and may only be used,

+ 1 - 1
thirdparty/freetype/include/freetype/internal/wofftypes.h

@@ -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-2022 by
+ * Copyright (C) 1996-2023 by
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  *
  *
  * This file is part of the FreeType project, and may only be used,
  * This file is part of the FreeType project, and may only be used,

+ 1 - 1
thirdparty/freetype/include/freetype/otsvg.h

@@ -4,7 +4,7 @@
  *
  *
  *   Interface for OT-SVG support related things (specification).
  *   Interface for OT-SVG support related things (specification).
  *
  *
- * Copyright (C) 2022 by
+ * Copyright (C) 2022-2023 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,

+ 1 - 1
thirdparty/freetype/include/freetype/t1tables.h

@@ -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-2022 by
+ * Copyright (C) 1996-2023 by
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  * David Turner, Robert Wilhelm, and Werner Lemberg.
  *
  *
  * This file is part of the FreeType project, and may only be used,
  * This file is part of the FreeType project, and may only be used,

+ 1 - 1
thirdparty/freetype/include/freetype/ttnameid.h

@@ -4,7 +4,7 @@
  *
  *
  *   TrueType name ID definitions (specification only).
  *   TrueType name ID definitions (specification only).
  *
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 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,

+ 3 - 3
thirdparty/freetype/include/freetype/tttables.h

@@ -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-2022 by
+ * Copyright (C) 1996-2023 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,
@@ -424,8 +424,8 @@ FT_BEGIN_HEADER
 
 
     /* only version 5 and higher: */
     /* only version 5 and higher: */
 
 
-    FT_UShort  usLowerOpticalPointSize;       /* in twips (1/20th points) */
-    FT_UShort  usUpperOpticalPointSize;       /* in twips (1/20th points) */
+    FT_UShort  usLowerOpticalPointSize;       /* in twips (1/20 points) */
+    FT_UShort  usUpperOpticalPointSize;       /* in twips (1/20 points) */
 
 
   } TT_OS2;
   } TT_OS2;
 
 

+ 1 - 1
thirdparty/freetype/include/freetype/tttags.h

@@ -4,7 +4,7 @@
  *
  *
  *   Tags for TrueType and OpenType tables (specification only).
  *   Tags for TrueType and OpenType tables (specification only).
  *
  *
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2023 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,

部分文件因为文件数量过多而无法显示