@img/sharp-libvips-dev 1.2.2-rc.1 → 1.2.2-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/include/aom/aom_decoder.h +1 -1
  2. package/include/aom/aom_encoder.h +2 -0
  3. package/include/aom/aomcx.h +106 -25
  4. package/include/freetype2/freetype/config/ftconfig.h +1 -1
  5. package/include/freetype2/freetype/config/ftheader.h +1 -1
  6. package/include/freetype2/freetype/config/ftoption.h +37 -12
  7. package/include/freetype2/freetype/config/ftstdlib.h +1 -1
  8. package/include/freetype2/freetype/config/integer-types.h +29 -2
  9. package/include/freetype2/freetype/config/mac-support.h +1 -1
  10. package/include/freetype2/freetype/config/public-macros.h +3 -3
  11. package/include/freetype2/freetype/freetype.h +51 -47
  12. package/include/freetype2/freetype/ftadvanc.h +1 -1
  13. package/include/freetype2/freetype/ftbbox.h +1 -1
  14. package/include/freetype2/freetype/ftbdf.h +1 -1
  15. package/include/freetype2/freetype/ftbitmap.h +1 -1
  16. package/include/freetype2/freetype/ftbzip2.h +1 -1
  17. package/include/freetype2/freetype/ftcache.h +1 -1
  18. package/include/freetype2/freetype/ftcid.h +1 -1
  19. package/include/freetype2/freetype/ftcolor.h +13 -4
  20. package/include/freetype2/freetype/ftdriver.h +3 -3
  21. package/include/freetype2/freetype/fterrdef.h +1 -1
  22. package/include/freetype2/freetype/fterrors.h +1 -1
  23. package/include/freetype2/freetype/ftfntfmt.h +1 -1
  24. package/include/freetype2/freetype/ftgasp.h +1 -1
  25. package/include/freetype2/freetype/ftglyph.h +1 -1
  26. package/include/freetype2/freetype/ftgxval.h +1 -1
  27. package/include/freetype2/freetype/ftgzip.h +1 -1
  28. package/include/freetype2/freetype/ftimage.h +6 -2
  29. package/include/freetype2/freetype/ftincrem.h +1 -1
  30. package/include/freetype2/freetype/ftlcdfil.h +1 -1
  31. package/include/freetype2/freetype/ftlist.h +1 -1
  32. package/include/freetype2/freetype/ftlogging.h +184 -0
  33. package/include/freetype2/freetype/ftlzw.h +1 -1
  34. package/include/freetype2/freetype/ftmac.h +1 -1
  35. package/include/freetype2/freetype/ftmm.h +159 -103
  36. package/include/freetype2/freetype/ftmodapi.h +1 -1
  37. package/include/freetype2/freetype/ftmoderr.h +1 -1
  38. package/include/freetype2/freetype/ftotval.h +1 -1
  39. package/include/freetype2/freetype/ftoutln.h +1 -1
  40. package/include/freetype2/freetype/ftparams.h +1 -1
  41. package/include/freetype2/freetype/ftpfr.h +1 -1
  42. package/include/freetype2/freetype/ftrender.h +1 -1
  43. package/include/freetype2/freetype/ftsizes.h +1 -1
  44. package/include/freetype2/freetype/ftsnames.h +1 -1
  45. package/include/freetype2/freetype/ftstroke.h +1 -1
  46. package/include/freetype2/freetype/ftsynth.h +1 -1
  47. package/include/freetype2/freetype/ftsystem.h +1 -1
  48. package/include/freetype2/freetype/fttrigon.h +1 -1
  49. package/include/freetype2/freetype/fttypes.h +1 -1
  50. package/include/freetype2/freetype/ftwinfnt.h +2 -3
  51. package/include/freetype2/freetype/otsvg.h +1 -1
  52. package/include/freetype2/freetype/t1tables.h +1 -1
  53. package/include/freetype2/freetype/ttnameid.h +129 -129
  54. package/include/freetype2/freetype/tttables.h +8 -5
  55. package/include/freetype2/freetype/tttags.h +1 -1
  56. package/include/freetype2/ft2build.h +1 -1
  57. package/include/glib-2.0/gio/gdbuserror.h +9 -8
  58. package/include/glib-2.0/gio/ginetaddress.h +12 -0
  59. package/include/glib-2.0/gio/gioenums.h +9 -2
  60. package/include/glib-2.0/glib/gstring.h +2 -2
  61. package/include/glib-2.0/glib/gunicode.h +1 -1
  62. package/include/glib-2.0/gobject/glib-types.h +1 -1
  63. package/include/glib-2.0/gobject/gparam.h +1 -1
  64. package/include/glib-2.0/gobject/gvalue.h +78 -35
  65. package/include/harfbuzz/hb-script-list.h +12 -0
  66. package/include/harfbuzz/hb-version.h +3 -3
  67. package/include/librsvg-2.0/librsvg/rsvg-version.h +2 -2
  68. package/include/libxml2/libxml/valid.h +0 -3
  69. package/include/libxml2/libxml/xmlerror.h +1 -1
  70. package/include/libxml2/libxml/xmlversion.h +4 -4
  71. package/include/vips/connection.h +4 -4
  72. package/include/vips/version.h +4 -4
  73. package/package.json +1 -1
  74. package/versions.json +8 -8
@@ -52,7 +52,7 @@ extern "C" {
52
52
  *
53
53
  * The available flags are specified by AOM_CODEC_CAP_* defines.
54
54
  */
55
- /*!brief Can support external frame buffers */
55
+ /*!\brief Can support external frame buffers */
56
56
  #define AOM_CODEC_CAP_EXTERNAL_FRAME_BUFFER 0x200000
57
57
 
58
58
  /*! \brief Initialization-time Feature Enabling
@@ -377,6 +377,8 @@ typedef struct cfg_options {
377
377
  typedef long aom_enc_frame_flags_t;
378
378
  /*!\brief Force this frame to be a keyframe */
379
379
  #define AOM_EFLAG_FORCE_KF (1 << 0)
380
+ /*!\brief Calculate PSNR for this frame, requires g_lag_in_frames to be 0 */
381
+ #define AOM_EFLAG_CALCULATE_PSNR (1 << 1)
380
382
 
381
383
  /*!\brief Encoder configuration structure
382
384
  *
@@ -208,11 +208,11 @@ enum aome_enc_control_id {
208
208
  * encoding process, values greater than 0 will increase encoder speed at
209
209
  * the expense of quality.
210
210
  *
211
- * Valid range: 0..11. 0 runs the slowest, and 11 runs the fastest;
211
+ * Valid range: 0..12. 0 runs the slowest, and 12 runs the fastest;
212
212
  * quality improves as speed decreases (since more compression
213
213
  * possibilities are explored).
214
214
  *
215
- * NOTE: 10 and 11 are only allowed in AOM_USAGE_REALTIME. In
215
+ * NOTE: 10 - 12 are only allowed in AOM_USAGE_REALTIME. In
216
216
  * AOM_USAGE_GOOD_QUALITY and AOM_USAGE_ALL_INTRA, 9 is the highest allowed
217
217
  * value. However, AOM_USAGE_GOOD_QUALITY treats 7..9 the same as 6. Also,
218
218
  * AOM_USAGE_REALTIME treats 0..4 the same as 5.
@@ -313,6 +313,10 @@ enum aome_enc_control_id {
313
313
 
314
314
  /*!\brief Codec control function to set number of spatial layers, int
315
315
  * parameter
316
+ *
317
+ * Valid range:
318
+ * \li When using #AV1E_SET_SVC_REF_FRAME_CONFIG: [1, #AOM_MAX_SS_LAYERS]
319
+ * \li When \em not using #AV1E_SET_SVC_REF_FRAME_CONFIG: [1, 3]
316
320
  */
317
321
  AOME_SET_NUMBER_SPATIAL_LAYERS = 27,
318
322
 
@@ -1136,6 +1140,10 @@ enum aome_enc_control_id {
1136
1140
  * - 4 = use modulation for user rating based perceptual quality optimization
1137
1141
  * - 5 = use modulation for HDR video
1138
1142
  * - 6 = use modulation for all intra using Variance Boost
1143
+ *
1144
+ * \attention Delta q modes 1-5 are unsupported and are silently ignored in
1145
+ * non-RD mode. Non-RD mode is enabled by setting cpu-used >= 8 (all intra
1146
+ * usage) and cpu-used >= 7 (realtime usage).
1139
1147
  */
1140
1148
  AV1E_SET_DELTAQ_MODE = 107,
1141
1149
 
@@ -1399,7 +1407,8 @@ enum aome_enc_control_id {
1399
1407
  */
1400
1408
  AV1E_SET_SVC_REF_FRAME_COMP_PRED = 147,
1401
1409
 
1402
- /*!\brief Set --deltaq-mode strength.
1410
+ /*!\brief Set --deltaq-mode strength, where the value is a percentage,
1411
+ * unsigned int parameter.
1403
1412
  *
1404
1413
  * Valid range: [0, 1000]
1405
1414
  */
@@ -1578,6 +1587,36 @@ enum aome_enc_control_id {
1578
1587
  */
1579
1588
  AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR = 169,
1580
1589
 
1590
+ /*!\brief Codec control to enable the low complexity decode mode, unsigned
1591
+ * int parameter. Value of zero means this mode is disabled.
1592
+ */
1593
+ AV1E_SET_ENABLE_LOW_COMPLEXITY_DECODE = 170,
1594
+
1595
+ /*!\brief Codec control to set the screen content detection mode,
1596
+ * aom_screen_detection_mode parameter.
1597
+ *
1598
+ * - 1: AOM_SCREEN_DETECTION_STANDARD = standard (default)
1599
+ * - 2: AOM_SCREEN_DETECTION_ANTIALIASING_AWARE = anti-aliased text and
1600
+ * graphics aware
1601
+ */
1602
+ AV1E_SET_SCREEN_CONTENT_DETECTION_MODE = 171,
1603
+
1604
+ /*!\brief Codec control to enable adaptive sharpness, which modulates
1605
+ * sharpness based on frame QP, unsigned int parameter.
1606
+ *
1607
+ * Adaptive sharpness helps mitigate blocking artifacts in the low to medium
1608
+ * quality range.
1609
+ *
1610
+ * - 0 = disable (default)
1611
+ * - 1 = enable
1612
+ *
1613
+ * \note When adaptive sharpness is enabled, AOME_SET_SHARPNESS acts as a
1614
+ * "maximum sharpness" value. Adaptive sharpness can still modulate effective
1615
+ * sharpness between 0 and the maximum sharpness. As a consequence, adaptive
1616
+ * sharpness only has effects when sharpness is greater than 0.
1617
+ */
1618
+ AV1E_SET_ENABLE_ADAPTIVE_SHARPNESS = 172,
1619
+
1581
1620
  // Any new encoder control IDs should be added above.
1582
1621
  // Maximum allowed encoder control ID is 229.
1583
1622
  // No encoder control ID should be added below.
@@ -1611,19 +1650,21 @@ typedef enum aom_scaling_mode_1d {
1611
1650
  /*!\brief aom region of interest map
1612
1651
  *
1613
1652
  * These defines the data structures for the region of interest map
1614
- *
1615
- * TODO(yaowu): create a unit test for ROI map related APIs
1616
- *
1617
1653
  */
1618
1654
  typedef struct aom_roi_map {
1619
- /*! An id between 0 and 7 for each 8x8 region within a frame. */
1655
+ /*! If ROI is enabled. */
1656
+ uint8_t enabled;
1657
+ /*! An id between 0 and 7 for each 4x4 region within a frame. */
1620
1658
  unsigned char *roi_map;
1621
- unsigned int rows; /**< Number of rows. */
1622
- unsigned int cols; /**< Number of columns. */
1623
- int delta_q[AOM_MAX_SEGMENTS]; /**< Quantizer deltas. */
1624
- int delta_lf[AOM_MAX_SEGMENTS]; /**< Loop filter deltas. */
1625
- /*! Static breakout threshold for each segment. */
1626
- unsigned int static_threshold[AOM_MAX_SEGMENTS];
1659
+ unsigned int rows; /**< Number of rows. */
1660
+ unsigned int cols; /**< Number of columns. */
1661
+ int delta_q[AOM_MAX_SEGMENTS]; /**< Quantizer deltas. */
1662
+ int delta_lf[AOM_MAX_SEGMENTS]; /**< Loop filter deltas. */
1663
+ int skip[AOM_MAX_SEGMENTS]; /**< Skip this block. */
1664
+ int ref_frame[AOM_MAX_SEGMENTS]; /**< Reference frame for this block. */
1665
+ int delta_qp_enabled; /**< Delta qp feature enabled. */
1666
+ int reference_enabled; /**< Reference frame feature enabled. */
1667
+ int rdmult_delta_qp; /**< RD mult for delta qp feature. */
1627
1668
  } aom_roi_map_t;
1628
1669
 
1629
1670
  /*!\brief aom active region map
@@ -1649,7 +1690,7 @@ typedef struct aom_scaling_mode {
1649
1690
  AOM_SCALING_MODE v_scaling_mode; /**< vertical scaling mode */
1650
1691
  } aom_scaling_mode_t;
1651
1692
 
1652
- /*!brief AV1 encoder content type */
1693
+ /*!\brief AV1 encoder content type */
1653
1694
  typedef enum {
1654
1695
  AOM_CONTENT_DEFAULT,
1655
1696
  AOM_CONTENT_SCREEN,
@@ -1657,7 +1698,15 @@ typedef enum {
1657
1698
  AOM_CONTENT_INVALID
1658
1699
  } aom_tune_content;
1659
1700
 
1660
- /*!brief AV1 encoder timing info type signaling */
1701
+ /*!\brief Screen content detection mode */
1702
+ typedef enum {
1703
+ /** Standard */
1704
+ AOM_SCREEN_DETECTION_STANDARD = 1,
1705
+ /** Anti-aliased text and graphics aware */
1706
+ AOM_SCREEN_DETECTION_ANTIALIASING_AWARE = 2
1707
+ } aom_screen_detection_mode;
1708
+
1709
+ /*!\brief AV1 encoder timing info type signaling */
1661
1710
  typedef enum {
1662
1711
  AOM_TIMING_UNSPECIFIED,
1663
1712
  AOM_TIMING_EQUAL,
@@ -1669,9 +1718,10 @@ typedef enum {
1669
1718
  * Changes the encoder to tune for certain types of input material.
1670
1719
  *
1671
1720
  * \note
1672
- * AOM_TUNE_IQ is restricted to all intra mode (AOM_USAGE_ALL_INTRA). Setting
1673
- * the tuning option to AOM_TUNE_IQ causes the following options to be set
1674
- * (expressed as command-line options):
1721
+ * AOM_TUNE_IQ and AOM_TUNE_SSIMULACRA2 are restricted to all intra mode
1722
+ * (AOM_USAGE_ALL_INTRA). Setting the tuning option to either AOM_TUNE_IQ or
1723
+ * AOM_TUNE_SSIMULACRA2 causes the following options to be set (expressed as
1724
+ * command-line options):
1675
1725
  * * --enable-qm=1
1676
1726
  * * --qm-min=2
1677
1727
  * * --qm-max=10
@@ -1680,6 +1730,9 @@ typedef enum {
1680
1730
  * * --enable-cdef=3
1681
1731
  * * --enable-chroma-deltaq=1
1682
1732
  * * --deltaq-mode=6
1733
+ * * --screen-detection-mode=2
1734
+ * AOM_TUNE_IQ additionally sets the following options:
1735
+ * * --enable-adaptive-sharpness=1
1683
1736
  */
1684
1737
  typedef enum {
1685
1738
  AOM_TUNE_PSNR = 0,
@@ -1698,6 +1751,12 @@ typedef enum {
1698
1751
  * the rdmult code with AOM_TUNE_SSIM.
1699
1752
  */
1700
1753
  AOM_TUNE_IQ = 10,
1754
+ /*!\brief Allows detection of the presence of AOM_TUNE_SSIMULACRA2 at compile
1755
+ * time. */
1756
+ #define AOM_HAVE_TUNE_SSIMULACRA2 1
1757
+ /* Tune that optimizes for maximum SSIMULACRA 2 scores. Shares the rdmult code
1758
+ with AOM_TUNE_SSIM. */
1759
+ AOM_TUNE_SSIMULACRA2 = 11,
1701
1760
  } aom_tune_metric;
1702
1761
 
1703
1762
  /*!\brief Distortion metric to use for RD optimization.
@@ -1721,21 +1780,33 @@ typedef enum {
1721
1780
  #define AOM_MAX_SS_LAYERS 4 /**< Max number of spatial layers */
1722
1781
  #define AOM_MAX_TS_LAYERS 8 /**< Max number of temporal layers */
1723
1782
 
1724
- /*!brief Struct for spatial and temporal layer ID */
1783
+ /*!\brief Struct for spatial and temporal layer ID */
1725
1784
  typedef struct aom_svc_layer_id {
1726
1785
  int spatial_layer_id; /**< Spatial layer ID */
1727
1786
  int temporal_layer_id; /**< Temporal layer ID */
1728
1787
  } aom_svc_layer_id_t;
1729
1788
 
1730
- /*!brief Parameter type for SVC
1789
+ /*!\brief Parameter type for SVC
1731
1790
  *
1732
1791
  * In the arrays of size AOM_MAX_LAYERS, the index for spatial layer `sl` and
1733
1792
  * temporal layer `tl` is sl * number_temporal_layers + tl.
1734
1793
  *
1735
1794
  */
1736
1795
  typedef struct aom_svc_params {
1737
- int number_spatial_layers; /**< Number of spatial layers */
1738
- int number_temporal_layers; /**< Number of temporal layers */
1796
+ /*!Number of spatial layers
1797
+ *
1798
+ * Valid range:
1799
+ * \li When using #AV1E_SET_SVC_REF_FRAME_CONFIG: [1, #AOM_MAX_SS_LAYERS]
1800
+ * \li When \em not using #AV1E_SET_SVC_REF_FRAME_CONFIG: [1, 3]
1801
+ */
1802
+ int number_spatial_layers;
1803
+ /*!Number of temporal layers
1804
+ *
1805
+ * Valid range:
1806
+ * \li When using #AV1E_SET_SVC_REF_FRAME_CONFIG: [1, #AOM_MAX_TS_LAYERS]
1807
+ * \li When \em not using #AV1E_SET_SVC_REF_FRAME_CONFIG: [1, 3]
1808
+ */
1809
+ int number_temporal_layers;
1739
1810
  int max_quantizers[AOM_MAX_LAYERS]; /**< Max Q for each layer */
1740
1811
  int min_quantizers[AOM_MAX_LAYERS]; /**< Min Q for each layer */
1741
1812
  int scaling_factor_num[AOM_MAX_SS_LAYERS]; /**< Scaling factor-numerator */
@@ -1746,7 +1817,7 @@ typedef struct aom_svc_params {
1746
1817
  int framerate_factor[AOM_MAX_TS_LAYERS];
1747
1818
  } aom_svc_params_t;
1748
1819
 
1749
- /*!brief Parameters for setting ref frame config */
1820
+ /*!\brief Parameters for setting ref frame config */
1750
1821
  typedef struct aom_svc_ref_frame_config {
1751
1822
  // Three arrays need to be set: reference[], ref_id[], refresh[].
1752
1823
  // reference[i]: is a boolean flag to indicate which of the 7 possible
@@ -1769,14 +1840,14 @@ typedef struct aom_svc_ref_frame_config {
1769
1840
  int refresh[8]; /**< Refresh flag for each of the 8 buffer slots. */
1770
1841
  } aom_svc_ref_frame_config_t;
1771
1842
 
1772
- /*!brief Parameters for setting ref frame compound prediction */
1843
+ /*!\brief Parameters for setting ref frame compound prediction */
1773
1844
  typedef struct aom_svc_ref_frame_comp_pred {
1774
1845
  // Use compound prediction for the ref_frame pairs GOLDEN_LAST (0),
1775
1846
  // LAST2_LAST (1), and ALTREF_LAST (2).
1776
1847
  int use_comp_pred[3]; /**<Compound reference flag. */
1777
1848
  } aom_svc_ref_frame_comp_pred_t;
1778
1849
 
1779
- /*!brief Frame drop modes for spatial/quality layer SVC */
1850
+ /*!\brief Frame drop modes for spatial/quality layer SVC */
1780
1851
  typedef enum {
1781
1852
  AOM_LAYER_DROP, /**< Any spatial layer can drop. */
1782
1853
  AOM_FULL_SUPERFRAME_DROP, /**< Only full superframe can drop. */
@@ -2279,6 +2350,16 @@ AOM_CTRL_USE_TYPE(AV1E_SET_POSTENCODE_DROP_RTC, int)
2279
2350
  AOM_CTRL_USE_TYPE(AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR, int)
2280
2351
  #define AOM_CTRL_AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR
2281
2352
 
2353
+ AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_LOW_COMPLEXITY_DECODE, unsigned int)
2354
+ #define AOM_CTRL_AV1E_SET_ENABLE_LOW_COMPLEXITY_DECODE
2355
+
2356
+ AOM_CTRL_USE_TYPE(AV1E_SET_SCREEN_CONTENT_DETECTION_MODE,
2357
+ int) /* aom_screen_detection_mode */
2358
+ #define AOM_CTRL_SET_SCREEN_CONTENT_DETECTION_MODE
2359
+
2360
+ AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_ADAPTIVE_SHARPNESS, unsigned int)
2361
+ #define AOM_CTRL_AV1E_SET_ENABLE_ADAPTIVE_SHARPNESS
2362
+
2282
2363
  /*!\endcond */
2283
2364
  /*! @} - end defgroup aom_encoder */
2284
2365
  #ifdef __cplusplus
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * ANSI-specific configuration file (specification only).
6
6
  *
7
- * Copyright (C) 1996-2024 by
7
+ * Copyright (C) 1996-2025 by
8
8
  * David Turner, Robert Wilhelm, and Werner Lemberg.
9
9
  *
10
10
  * This file is part of the FreeType project, and may only be used,
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Build macros of the FreeType 2 library.
6
6
  *
7
- * Copyright (C) 1996-2024 by
7
+ * Copyright (C) 1996-2025 by
8
8
  * David Turner, Robert Wilhelm, and Werner Lemberg.
9
9
  *
10
10
  * This file is part of the FreeType project, and may only be used,
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * User-selectable configuration macros (specification only).
6
6
  *
7
- * Copyright (C) 1996-2024 by
7
+ * Copyright (C) 1996-2025 by
8
8
  * David Turner, Robert Wilhelm, and Werner Lemberg.
9
9
  *
10
10
  * This file is part of the FreeType project, and may only be used,
@@ -158,12 +158,12 @@ FT_BEGIN_HEADER
158
158
 
159
159
  /**************************************************************************
160
160
  *
161
- * If this macro is defined, try to use an inlined assembler version of the
162
- * @FT_MulFix function, which is a 'hotspot' when loading and hinting
163
- * glyphs, and which should be executed as fast as possible.
161
+ * If this macro is defined, try to use an inlined 64-bit or assembler
162
+ * version of the @FT_MulFix function, which is a 'hotspot' when loading
163
+ * and hinting glyphs, and which should be executed as fast as possible.
164
164
  *
165
- * Note that if your compiler or CPU is not supported, this will default to
166
- * the standard and portable implementation found in `ftcalc.c`.
165
+ * If your compiler is not C99-compliant or CPU assembly is not supported,
166
+ * you can disable this option.
167
167
  */
168
168
  #define FT_CONFIG_OPTION_INLINE_MULFIX
169
169
 
@@ -293,6 +293,31 @@ FT_BEGIN_HEADER
293
293
  #define FT_CONFIG_OPTION_USE_HARFBUZZ
294
294
 
295
295
 
296
+ /**************************************************************************
297
+ *
298
+ * HarfBuzz dynamic support.
299
+ *
300
+ * Define this macro if you want the HarfBuzz library to be loaded at
301
+ * runtime instead of being linked to FreeType.
302
+ *
303
+ * This option has no effect if `FT_CONFIG_OPTION_USE_HARFBUZZ` is not
304
+ * defined.
305
+ *
306
+ * When this option is enabled, FreeType will try to load the HarfBuzz
307
+ * library at runtime, using `dlopen` or `LoadLibrary`, depending on the
308
+ * platform. On Microsoft platforms, the library name looked up is
309
+ * `libharfbuzz-0.dll`. On Apple platforms, the library name looked up
310
+ * is `libharfbuzz.0.dylib`. On all other platforms, the library name
311
+ * looked up is `libharfbuzz.so.0`. This name can be overridden by
312
+ * defining the macro `FT_LIBHARFBUZZ` at FreeType compilation time.
313
+ *
314
+ * If you use a build system like cmake or the `configure` script,
315
+ * options set by those programs have precedence, overwriting the value
316
+ * here with the configured one.
317
+ */
318
+ /* #define FT_CONFIG_OPTION_USE_HARFBUZZ_DYNAMIC */
319
+
320
+
296
321
  /**************************************************************************
297
322
  *
298
323
  * Brotli support.
@@ -679,7 +704,7 @@ FT_BEGIN_HEADER
679
704
  * defined.
680
705
  *
681
706
  * [1]
682
- * https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx
707
+ * https://learn.microsoft.com/typography/cleartype/truetypecleartype
683
708
  */
684
709
  #define TT_CONFIG_OPTION_SUBPIXEL_HINTING
685
710
 
@@ -697,7 +722,7 @@ FT_BEGIN_HEADER
697
722
  * flags array which can be used to disambiguate, but old fonts will not
698
723
  * have them.
699
724
  *
700
- * https://www.microsoft.com/typography/otspec/glyf.htm
725
+ * https://learn.microsoft.com/typography/opentype/spec/glyf
701
726
  * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html
702
727
  */
703
728
  #undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED
@@ -760,10 +785,10 @@ FT_BEGIN_HEADER
760
785
  /**************************************************************************
761
786
  *
762
787
  * Option `TT_CONFIG_OPTION_GPOS_KERNING` enables a basic GPOS kerning
763
- * implementation (for TrueType fonts only). With this defined, FreeType
764
- * is able to get kerning pair data from the GPOS 'kern' feature as well as
765
- * legacy 'kern' tables; without this defined, FreeType will only be able
766
- * to use legacy 'kern' tables.
788
+ * implementation (for TrueType and OpenType fonts only). With this
789
+ * defined, FreeType is able to get kerning pair data from the GPOS 'kern'
790
+ * feature as well as legacy 'kern' tables; without this defined, FreeType
791
+ * will only be able to use legacy 'kern' tables.
767
792
  *
768
793
  * Note that FreeType does not support more advanced GPOS layout features;
769
794
  * even the 'kern' feature implemented here doesn't handle more
@@ -5,7 +5,7 @@
5
5
  * ANSI-specific library and header configuration file (specification
6
6
  * only).
7
7
  *
8
- * Copyright (C) 2002-2024 by
8
+ * Copyright (C) 2002-2025 by
9
9
  * David Turner, Robert Wilhelm, and Werner Lemberg.
10
10
  *
11
11
  * This file is part of the FreeType project, and may only be used,
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * FreeType integer types definitions.
6
6
  *
7
- * Copyright (C) 1996-2024 by
7
+ * Copyright (C) 1996-2025 by
8
8
  * David Turner, Robert Wilhelm, and Werner Lemberg.
9
9
  *
10
10
  * This file is part of the FreeType project, and may only be used,
@@ -17,6 +17,8 @@
17
17
  #ifndef FREETYPE_CONFIG_INTEGER_TYPES_H_
18
18
  #define FREETYPE_CONFIG_INTEGER_TYPES_H_
19
19
 
20
+ FT_BEGIN_HEADER
21
+
20
22
  /* There are systems (like the Texas Instruments 'C54x) where a `char` */
21
23
  /* has 16~bits. ANSI~C says that `sizeof(char)` is always~1. Since an */
22
24
  /* `int` has 16~bits also for this system, `sizeof(int)` gives~1 which */
@@ -242,9 +244,34 @@
242
244
  #endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */
243
245
 
244
246
  #ifdef FT_INT64
247
+
245
248
  typedef FT_INT64 FT_Int64;
246
249
  typedef FT_UINT64 FT_UInt64;
247
- #endif
248
250
 
251
+ # define FT_INT64_ZERO 0
252
+
253
+ #else /* !FT_INT64 */
254
+
255
+ /* we need to emulate 64-bit data types if none are available */
256
+
257
+ typedef struct FT_Int64_
258
+ {
259
+ FT_UInt32 lo;
260
+ FT_UInt32 hi;
261
+
262
+ } FT_Int64;
263
+
264
+ typedef struct FT_UInt64_
265
+ {
266
+ FT_UInt32 lo;
267
+ FT_UInt32 hi;
268
+
269
+ } FT_UInt64;
270
+
271
+ # define FT_INT64_ZERO { 0, 0 }
272
+
273
+ #endif /* !FT_INT64 */
274
+
275
+ FT_END_HEADER
249
276
 
250
277
  #endif /* FREETYPE_CONFIG_INTEGER_TYPES_H_ */
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Mac/OS X support configuration header.
6
6
  *
7
- * Copyright (C) 1996-2024 by
7
+ * Copyright (C) 1996-2025 by
8
8
  * David Turner, Robert Wilhelm, and Werner Lemberg.
9
9
  *
10
10
  * This file is part of the FreeType project, and may only be used,
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Define a set of compiler macros used in public FreeType headers.
6
6
  *
7
- * Copyright (C) 2020-2024 by
7
+ * Copyright (C) 2020-2025 by
8
8
  * David Turner, Robert Wilhelm, and Werner Lemberg.
9
9
  *
10
10
  * This file is part of the FreeType project, and may only be used,
@@ -62,8 +62,8 @@ FT_BEGIN_HEADER
62
62
  * because it is needed by `FT_EXPORT`.
63
63
  */
64
64
 
65
- /* Visual C, mingw */
66
- #if defined( _WIN32 )
65
+ /* Visual C, MinGW, Cygwin */
66
+ #if defined( _WIN32 ) || defined( __CYGWIN__ )
67
67
 
68
68
  #if defined( FT2_BUILD_LIBRARY ) && defined( DLL_EXPORT )
69
69
  #define FT_PUBLIC_FUNCTION_ATTRIBUTE __declspec( dllexport )