@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
@@ -2,9 +2,9 @@
2
2
  *
3
3
  * ftmm.h
4
4
  *
5
- * FreeType Multiple Master font interface (specification).
5
+ * FreeType variation font interface (specification).
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,
@@ -37,24 +37,79 @@ FT_BEGIN_HEADER
37
37
  * multiple_masters
38
38
  *
39
39
  * @title:
40
- * Multiple Masters
40
+ * OpenType Font Variations, TrueType GX, and Adobe MM Fonts
41
41
  *
42
42
  * @abstract:
43
- * How to manage Multiple Masters fonts.
43
+ * How to manage variable fonts with multiple design axes.
44
44
  *
45
45
  * @description:
46
- * The following types and functions are used to manage Multiple Master
47
- * fonts, i.e., the selection of specific design instances by setting
48
- * design axis coordinates.
49
- *
50
- * Besides Adobe MM fonts, the interface supports Apple's TrueType GX and
51
- * OpenType variation fonts. Some of the routines only work with Adobe
52
- * MM fonts, others will work with all three types. They are similar
53
- * enough that a consistent interface makes sense.
54
- *
55
- * For Adobe MM fonts, macro @FT_IS_SFNT returns false. For GX and
56
- * OpenType variation fonts, it returns true.
57
- *
46
+ * The following types and functions manage OpenType Font Variations,
47
+ * Adobe Multiple Master (MM) fonts, and Apple TrueType GX fonts. These
48
+ * formats have in common that they allow the selection of specific
49
+ * design instances by setting design coordinates for one or more axes
50
+ * like font weight or width.
51
+ *
52
+ * For historical reasons there are two interfaces. The first, older one
53
+ * can be used with Adobe MM fonts only, and the second, newer one is a
54
+ * unified interface that handles all three font formats. However, some
55
+ * differences remain and are documented accordingly; in particular,
56
+ * Adobe MM fonts don't have named instances (see below).
57
+ *
58
+ * For Adobe MM fonts, macro @FT_IS_SFNT returns false. For TrueType GX
59
+ * and OpenType Font Variations, it returns true.
60
+ *
61
+ * We use mostly the terminology of the OpenType standard. Here are some
62
+ * important technical terms.
63
+ *
64
+ * * A 'named instance' is a tuple of design coordinates that has a
65
+ * string ID (i.e., an index into the font's 'name' table) associated
66
+ * with it. The font can tell the user that, for example,
67
+ * [Weight=700,Width=110] is 'Bold'. Another name for 'named instance'
68
+ * is 'named style'.
69
+ *
70
+ * Adobe MM fonts don't have named instances.
71
+ *
72
+ * * The 'default instance' of a variation font is that instance for
73
+ * which the nth axis coordinate is equal to the nth default axis
74
+ * coordinate (i.e., `axis[n].def` as specified in the @FT_MM_Var
75
+ * structure), with~n covering all axes. In TrueType GX and OpenType
76
+ * Font Variations, the default instance is explicitly given. In Adobe
77
+ * MM fonts, the `WeightVector` entry as found in the font file is
78
+ * taken as the default instance.
79
+ *
80
+ * For TrueType GX and OpenType Font Variations, FreeType synthesizes
81
+ * a named instance for the default instance if the font does not
82
+ * contain such an entry.
83
+ *
84
+ * * 'Design coordinates' are the axis values found in a variation font
85
+ * file. Their meaning is specified by the font designer and the
86
+ * values are rather arbitrary.
87
+ *
88
+ * For example, the 'weight' axis in design coordinates might vary
89
+ * between 100 (thin) and 900 (heavy) in font~A, while font~B
90
+ * contains values between 400 (normal) and 800 (extra bold).
91
+ *
92
+ * * 'Normalized coordinates' are design coordinates mapped to a standard
93
+ * range; they are also called 'blend coordinates'.
94
+ *
95
+ * For TrueType GX and OpenType Font Variations, the range is [-1;1],
96
+ * with the minimum mapped to value~-1, the default mapped to
97
+ * value~0, and the maximum mapped to value~1, and all other
98
+ * coordinates mapped to intervening points. Please look up the
99
+ * [OpenType
100
+ * specification](https://learn.microsoft.com/en-us/typography/opentype/spec/otvaroverview)
101
+ * on how this mapping works in detail.
102
+ *
103
+ * For Adobe MM fonts, this standard range is [0;1], with the minimum
104
+ * mapped to value~0 and the maximum mapped to value~1, and all other
105
+ * coordinates mapped to intervening points. Please look up [Adobe
106
+ * TechNote
107
+ * #5015](https://adobe-type-tools.github.io/font-tech-notes/pdfs/5015.Type1_Supp.pdf)
108
+ * on how this mapping works in detail.
109
+ *
110
+ * Assuming that the two fonts in the previous example are OpenType
111
+ * Font Variations, both font~A's [100;900] and font~B's [400;800]
112
+ * coordinate ranges get mapped to [-1;1].
58
113
  */
59
114
 
60
115
 
@@ -64,14 +119,14 @@ FT_BEGIN_HEADER
64
119
  * T1_MAX_MM_XXX
65
120
  *
66
121
  * @description:
67
- * Multiple Masters limits as defined in their specifications.
122
+ * Adobe MM font limits as defined in their specifications.
68
123
  *
69
124
  * @values:
70
125
  * T1_MAX_MM_AXIS ::
71
- * The maximum number of Multiple Masters axes.
126
+ * The maximum number of Adobe MM font axes.
72
127
  *
73
128
  * T1_MAX_MM_DESIGNS ::
74
- * The maximum number of Multiple Masters designs.
129
+ * The maximum number of Adobe MM font designs.
75
130
  *
76
131
  * T1_MAX_MM_MAP_POINTS ::
77
132
  * The maximum number of elements in a design map.
@@ -88,11 +143,10 @@ FT_BEGIN_HEADER
88
143
  * FT_MM_Axis
89
144
  *
90
145
  * @description:
91
- * A structure to model a given axis in design space for Multiple Masters
92
- * fonts.
146
+ * A structure to model a given axis in design space for Adobe MM fonts.
93
147
  *
94
- * This structure can't be used for TrueType GX or OpenType variation
95
- * fonts.
148
+ * This structure can't be used with TrueType GX or OpenType Font
149
+ * Variations.
96
150
  *
97
151
  * @fields:
98
152
  * name ::
@@ -119,17 +173,17 @@ FT_BEGIN_HEADER
119
173
  * FT_Multi_Master
120
174
  *
121
175
  * @description:
122
- * A structure to model the axes and space of a Multiple Masters font.
176
+ * A structure to model the axes and space of an Adobe MM font.
123
177
  *
124
- * This structure can't be used for TrueType GX or OpenType variation
125
- * fonts.
178
+ * This structure can't be used with TrueType GX or OpenType Font
179
+ * Variations.
126
180
  *
127
181
  * @fields:
128
182
  * num_axis ::
129
183
  * Number of axes. Cannot exceed~4.
130
184
  *
131
185
  * num_designs ::
132
- * Number of designs; should be normally 2^num_axis even though the
186
+ * Number of designs; should be normally `2^num_axis` even though the
133
187
  * Type~1 specification strangely allows for intermediate designs to be
134
188
  * present. This number cannot exceed~16.
135
189
  *
@@ -151,13 +205,13 @@ FT_BEGIN_HEADER
151
205
  * FT_Var_Axis
152
206
  *
153
207
  * @description:
154
- * A structure to model a given axis in design space for Multiple
155
- * Masters, TrueType GX, and OpenType variation fonts.
208
+ * A structure to model a given axis in design space for Adobe MM fonts,
209
+ * TrueType GX, and OpenType Font Variations.
156
210
  *
157
211
  * @fields:
158
212
  * name ::
159
213
  * The axis's name. Not always meaningful for TrueType GX or OpenType
160
- * variation fonts.
214
+ * Font Variations.
161
215
  *
162
216
  * minimum ::
163
217
  * The axis's minimum design coordinate.
@@ -171,17 +225,17 @@ FT_BEGIN_HEADER
171
225
  *
172
226
  * tag ::
173
227
  * The axis's tag (the equivalent to 'name' for TrueType GX and
174
- * OpenType variation fonts). FreeType provides default values for
228
+ * OpenType Font Variations). FreeType provides default values for
175
229
  * Adobe MM fonts if possible.
176
230
  *
177
231
  * strid ::
178
232
  * The axis name entry in the font's 'name' table. This is another
179
233
  * (and often better) version of the 'name' field for TrueType GX or
180
- * OpenType variation fonts. Not meaningful for Adobe MM fonts.
234
+ * OpenType Font Variations. Not meaningful for Adobe MM fonts.
181
235
  *
182
236
  * @note:
183
237
  * The fields `minimum`, `def`, and `maximum` are 16.16 fractional values
184
- * for TrueType GX and OpenType variation fonts. For Adobe MM fonts, the
238
+ * for TrueType GX and OpenType Font Variations. For Adobe MM fonts, the
185
239
  * values are whole numbers (i.e., the fractional part is zero).
186
240
  */
187
241
  typedef struct FT_Var_Axis_
@@ -205,7 +259,7 @@ FT_BEGIN_HEADER
205
259
  *
206
260
  * @description:
207
261
  * A structure to model a named instance in a TrueType GX or OpenType
208
- * variation font.
262
+ * Font Variations.
209
263
  *
210
264
  * This structure can't be used for Adobe MM fonts.
211
265
  *
@@ -215,11 +269,11 @@ FT_BEGIN_HEADER
215
269
  * entry for each axis.
216
270
  *
217
271
  * strid ::
218
- * The entry in 'name' table identifying this instance.
272
+ * An index into the 'name' table identifying this instance.
219
273
  *
220
274
  * psid ::
221
- * The entry in 'name' table identifying a PostScript name for this
222
- * instance. Value 0xFFFF indicates a missing entry.
275
+ * An index into the 'name' table identifying a PostScript name for
276
+ * this instance. Value 0xFFFF indicates a missing entry.
223
277
  */
224
278
  typedef struct FT_Var_Named_Style_
225
279
  {
@@ -236,39 +290,33 @@ FT_BEGIN_HEADER
236
290
  * FT_MM_Var
237
291
  *
238
292
  * @description:
239
- * A structure to model the axes and space of an Adobe MM, TrueType GX,
240
- * or OpenType variation font.
293
+ * A structure to model the axes and space of Adobe MM fonts, TrueType
294
+ * GX, or OpenType Font Variations.
241
295
  *
242
296
  * Some fields are specific to one format and not to the others.
243
297
  *
244
298
  * @fields:
245
299
  * num_axis ::
246
300
  * The number of axes. The maximum value is~4 for Adobe MM fonts; no
247
- * limit in TrueType GX or OpenType variation fonts.
301
+ * limit in TrueType GX or OpenType Font Variations.
248
302
  *
249
303
  * num_designs ::
250
- * The number of designs; should be normally 2^num_axis for Adobe MM
251
- * fonts. Not meaningful for TrueType GX or OpenType variation fonts
304
+ * The number of designs; should be normally `2^num_axis` for Adobe MM
305
+ * fonts. Not meaningful for TrueType GX or OpenType Font Variations
252
306
  * (where every glyph could have a different number of designs).
253
307
  *
254
308
  * num_namedstyles ::
255
- * The number of named styles; a 'named style' is a tuple of design
256
- * coordinates that has a string ID (in the 'name' table) associated
257
- * with it. The font can tell the user that, for example,
258
- * [Weight=1.5,Width=1.1] is 'Bold'. Another name for 'named style' is
259
- * 'named instance'.
260
- *
261
- * For Adobe Multiple Masters fonts, this value is always zero because
262
- * the format does not support named styles.
309
+ * The number of named instances. For Adobe MM fonts, this value is
310
+ * always zero.
263
311
  *
264
312
  * axis ::
265
- * An axis descriptor table. TrueType GX and OpenType variation fonts
313
+ * An axis descriptor table. TrueType GX and OpenType Font Variations
266
314
  * contain slightly more data than Adobe MM fonts. Memory management
267
315
  * of this pointer is done internally by FreeType.
268
316
  *
269
317
  * namedstyle ::
270
- * A named style (instance) table. Only meaningful for TrueType GX and
271
- * OpenType variation fonts. Memory management of this pointer is done
318
+ * An array of named instances. Only meaningful for TrueType GX and
319
+ * OpenType Font Variations. Memory management of this pointer is done
272
320
  * internally by FreeType.
273
321
  */
274
322
  typedef struct FT_MM_Var_
@@ -290,8 +338,8 @@ FT_BEGIN_HEADER
290
338
  * @description:
291
339
  * Retrieve a variation descriptor of a given Adobe MM font.
292
340
  *
293
- * This function can't be used with TrueType GX or OpenType variation
294
- * fonts.
341
+ * This function can't be used with TrueType GX or OpenType Font
342
+ * Variations.
295
343
  *
296
344
  * @input:
297
345
  * face ::
@@ -299,7 +347,7 @@ FT_BEGIN_HEADER
299
347
  *
300
348
  * @output:
301
349
  * amaster ::
302
- * The Multiple Masters descriptor.
350
+ * The Adobe MM font's variation descriptor.
303
351
  *
304
352
  * @return:
305
353
  * FreeType error code. 0~means success.
@@ -366,8 +414,8 @@ FT_BEGIN_HEADER
366
414
  * For Adobe MM fonts, choose an interpolated font design through design
367
415
  * coordinates.
368
416
  *
369
- * This function can't be used with TrueType GX or OpenType variation
370
- * fonts.
417
+ * This function can't be used with TrueType GX or OpenType Font
418
+ * Variations.
371
419
  *
372
420
  * @inout:
373
421
  * face ::
@@ -391,8 +439,8 @@ FT_BEGIN_HEADER
391
439
  *
392
440
  * [Since 2.9] If `num_coords` is larger than zero, this function sets
393
441
  * the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field
394
- * (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero,
395
- * this bit flag gets unset.
442
+ * (i.e., @FT_IS_VARIATION returns true). If `num_coords` is zero, this
443
+ * bit flag gets unset.
396
444
  */
397
445
  FT_EXPORT( FT_Error )
398
446
  FT_Set_MM_Design_Coordinates( FT_Face face,
@@ -428,7 +476,7 @@ FT_BEGIN_HEADER
428
476
  *
429
477
  * @note:
430
478
  * The design coordinates are 16.16 fractional values for TrueType GX and
431
- * OpenType variation fonts. For Adobe MM fonts, the values are supposed
479
+ * OpenType Font Variations. For Adobe MM fonts, the values are supposed
432
480
  * to be whole numbers (i.e., the fractional part is zero).
433
481
  *
434
482
  * [Since 2.8.1] To reset all axes to the default values, call the
@@ -438,8 +486,14 @@ FT_BEGIN_HEADER
438
486
  *
439
487
  * [Since 2.9] If `num_coords` is larger than zero, this function sets
440
488
  * the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field
441
- * (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero,
442
- * this bit flag gets unset.
489
+ * (i.e., @FT_IS_VARIATION returns true). If `num_coords` is zero, this
490
+ * bit flag gets unset.
491
+ *
492
+ * [Since 2.14] This function also sets the @FT_FACE_FLAG_VARIATION bit
493
+ * in @FT_Face's `face_flags` field (i.e., @FT_IS_VARIATION returns
494
+ * true) if any of the provided coordinates is different from the face's
495
+ * default value for the corresponding axis, that is, the set up face is
496
+ * not at its default position.
443
497
  */
444
498
  FT_EXPORT( FT_Error )
445
499
  FT_Set_Var_Design_Coordinates( FT_Face face,
@@ -468,14 +522,14 @@ FT_BEGIN_HEADER
468
522
  *
469
523
  * @output:
470
524
  * coords ::
471
- * The design coordinates array.
525
+ * The design coordinates array, which must be allocated by the user.
472
526
  *
473
527
  * @return:
474
528
  * FreeType error code. 0~means success.
475
529
  *
476
530
  * @note:
477
531
  * The design coordinates are 16.16 fractional values for TrueType GX and
478
- * OpenType variation fonts. For Adobe MM fonts, the values are whole
532
+ * OpenType Font Variations. For Adobe MM fonts, the values are whole
479
533
  * numbers (i.e., the fractional part is zero).
480
534
  *
481
535
  * @since:
@@ -493,8 +547,7 @@ FT_BEGIN_HEADER
493
547
  * FT_Set_MM_Blend_Coordinates
494
548
  *
495
549
  * @description:
496
- * Choose an interpolated font design through normalized blend
497
- * coordinates.
550
+ * Choose an interpolated font design through normalized coordinates.
498
551
  *
499
552
  * This function works with all supported variation formats.
500
553
  *
@@ -509,9 +562,10 @@ FT_BEGIN_HEADER
509
562
  * the number of axes, use default values for the remaining axes.
510
563
  *
511
564
  * coords ::
512
- * The design coordinates array. Each element is a 16.16 fractional
513
- * value and must be between 0 and 1.0 for Adobe MM fonts, and between
514
- * -1.0 and 1.0 for TrueType GX and OpenType variation fonts.
565
+ * The normalized coordinates array. Each element is a 16.16
566
+ * fractional value and must be between 0 and 1.0 for Adobe MM fonts,
567
+ * and between -1.0 and 1.0 for TrueType GX and OpenType Font
568
+ * Variations.
515
569
  *
516
570
  * @return:
517
571
  * FreeType error code. 0~means success.
@@ -524,8 +578,14 @@ FT_BEGIN_HEADER
524
578
  *
525
579
  * [Since 2.9] If `num_coords` is larger than zero, this function sets
526
580
  * the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field
527
- * (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero,
528
- * this bit flag gets unset.
581
+ * (i.e., @FT_IS_VARIATION returns true). If `num_coords` is zero, this
582
+ * bit flag gets unset.
583
+ *
584
+ * [Since 2.14] This function also sets the @FT_FACE_FLAG_VARIATION bit
585
+ * in @FT_Face's `face_flags` field (i.e., @FT_IS_VARIATION returns
586
+ * true) if any of the provided coordinates is different from the face's
587
+ * default value for the corresponding axis, that is, the set up face is
588
+ * not at its default position.
529
589
  */
530
590
  FT_EXPORT( FT_Error )
531
591
  FT_Set_MM_Blend_Coordinates( FT_Face face,
@@ -539,8 +599,8 @@ FT_BEGIN_HEADER
539
599
  * FT_Get_MM_Blend_Coordinates
540
600
  *
541
601
  * @description:
542
- * Get the normalized blend coordinates of the currently selected
543
- * interpolated font.
602
+ * Get the normalized coordinates of the currently selected interpolated
603
+ * font.
544
604
  *
545
605
  * This function works with all supported variation formats.
546
606
  *
@@ -549,14 +609,14 @@ FT_BEGIN_HEADER
549
609
  * A handle to the source face.
550
610
  *
551
611
  * num_coords ::
552
- * The number of normalized blend coordinates to retrieve. If it is
553
- * larger than the number of axes, set the excess values to~0.5 for
554
- * Adobe MM fonts, and to~0 for TrueType GX and OpenType variation
555
- * fonts.
612
+ * The number of normalized coordinates to retrieve. If it is larger
613
+ * than the number of axes, set the excess values to~0.5 for Adobe MM
614
+ * fonts, and to~0 for TrueType GX and OpenType Font Variations.
556
615
  *
557
616
  * @output:
558
617
  * coords ::
559
- * The normalized blend coordinates array (as 16.16 fractional values).
618
+ * The normalized coordinates array (as 16.16 fractional values), which
619
+ * must be allocated by the user.
560
620
  *
561
621
  * @return:
562
622
  * FreeType error code. 0~means success.
@@ -610,8 +670,8 @@ FT_BEGIN_HEADER
610
670
  * For Adobe MM fonts, choose an interpolated font design by directly
611
671
  * setting the weight vector.
612
672
  *
613
- * This function can't be used with TrueType GX or OpenType variation
614
- * fonts.
673
+ * This function can't be used with TrueType GX or OpenType Font
674
+ * Variations.
615
675
  *
616
676
  * @inout:
617
677
  * face ::
@@ -630,16 +690,16 @@ FT_BEGIN_HEADER
630
690
  * FreeType error code. 0~means success.
631
691
  *
632
692
  * @note:
633
- * Adobe Multiple Master fonts limit the number of designs, and thus the
634
- * length of the weight vector to 16~elements.
693
+ * Adobe MM fonts limit the number of designs, and thus the length of the
694
+ * weight vector, to 16~elements.
635
695
  *
636
696
  * If `len` is larger than zero, this function sets the
637
697
  * @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field (i.e.,
638
- * @FT_IS_VARIATION will return true). If `len` is zero, this bit flag
639
- * is unset and the weight vector array is reset to the default values.
698
+ * @FT_IS_VARIATION returns true). If `len` is zero, this bit flag is
699
+ * unset and the weight vector array is reset to the default values.
640
700
  *
641
701
  * The Adobe documentation also states that the values in the
642
- * WeightVector array must total 1.0 +/-~0.001. In practice this does
702
+ * `WeightVector` array must total 1.0 +/-~0.001. In practice this does
643
703
  * not seem to be enforced, so is not enforced here, either.
644
704
  *
645
705
  * @since:
@@ -659,8 +719,8 @@ FT_BEGIN_HEADER
659
719
  * @description:
660
720
  * For Adobe MM fonts, retrieve the current weight vector of the font.
661
721
  *
662
- * This function can't be used with TrueType GX or OpenType variation
663
- * fonts.
722
+ * This function can't be used with TrueType GX or OpenType Font
723
+ * Variations.
664
724
  *
665
725
  * @inout:
666
726
  * face ::
@@ -677,14 +737,14 @@ FT_BEGIN_HEADER
677
737
  *
678
738
  * @output:
679
739
  * weightvector ::
680
- * An array to be filled.
740
+ * An array to be filled; it must be allocated by the user.
681
741
  *
682
742
  * @return:
683
743
  * FreeType error code. 0~means success.
684
744
  *
685
745
  * @note:
686
- * Adobe Multiple Master fonts limit the number of designs, and thus the
687
- * length of the WeightVector to~16.
746
+ * Adobe MM fonts limit the number of designs, and thus the length of the
747
+ * weight vector, to~16 elements.
688
748
  *
689
749
  * @since:
690
750
  * 2.10
@@ -760,8 +820,8 @@ FT_BEGIN_HEADER
760
820
  * A handle to the source face.
761
821
  *
762
822
  * instance_index ::
763
- * The index of the requested instance, starting with value 1. If set
764
- * to value 0, FreeType switches to font access without a named
823
+ * The index of the requested instance, starting with value~1. If set
824
+ * to value~0, FreeType switches to font access without a named
765
825
  * instance.
766
826
  *
767
827
  * @return:
@@ -771,11 +831,11 @@ FT_BEGIN_HEADER
771
831
  * The function uses the value of `instance_index` to set bits 16-30 of
772
832
  * the face's `face_index` field. It also resets any variation applied
773
833
  * to the font, and the @FT_FACE_FLAG_VARIATION bit of the face's
774
- * `face_flags` field gets reset to zero (i.e., @FT_IS_VARIATION will
775
- * return false).
834
+ * `face_flags` field gets reset to zero (i.e., @FT_IS_VARIATION returns
835
+ * false).
776
836
  *
777
- * For Adobe MM fonts (which don't have named instances) this function
778
- * simply resets the current face to the default instance.
837
+ * For Adobe MM fonts, this function resets the current face to the
838
+ * default instance.
779
839
  *
780
840
  * @since:
781
841
  * 2.9
@@ -794,10 +854,6 @@ FT_BEGIN_HEADER
794
854
  * Retrieve the index of the default named instance, to be used with
795
855
  * @FT_Set_Named_Instance.
796
856
  *
797
- * The default instance of a variation font is that instance for which
798
- * the nth axis coordinate is equal to `axis[n].def` (as specified in the
799
- * @FT_MM_Var structure), with~n covering all axes.
800
- *
801
857
  * FreeType synthesizes a named instance for the default instance if the
802
858
  * font does not contain such an entry.
803
859
  *
@@ -813,8 +869,8 @@ FT_BEGIN_HEADER
813
869
  * FreeType error code. 0~means success.
814
870
  *
815
871
  * @note:
816
- * For Adobe MM fonts (which don't have named instances) this function
817
- * always returns zero for `instance_index`.
872
+ * For Adobe MM fonts, this function always returns zero for
873
+ * `instance_index`.
818
874
  *
819
875
  * @since:
820
876
  * 2.13.1
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * FreeType modules public interface (specification).
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
  * FreeType module error offsets (specification).
6
6
  *
7
- * Copyright (C) 2001-2024 by
7
+ * Copyright (C) 2001-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
  * FreeType API for validating OpenType tables (specification).
6
6
  *
7
- * Copyright (C) 2004-2024 by
7
+ * Copyright (C) 2004-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,
@@ -5,7 +5,7 @@
5
5
  * Support for the FT_Outline type used to store glyph shapes of
6
6
  * most scalable font formats (specification).
7
7
  *
8
- * Copyright (C) 1996-2024 by
8
+ * Copyright (C) 1996-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 API for possible FT_Parameter tags (specification only).
6
6
  *
7
- * Copyright (C) 2017-2024 by
7
+ * Copyright (C) 2017-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
  * FreeType API for accessing PFR-specific data (specification only).
6
6
  *
7
- * Copyright (C) 2002-2024 by
7
+ * Copyright (C) 2002-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
  * FreeType renderer modules public interface (specification).
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
  * FreeType size objects management (specification).
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,
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * This is _not_ used to retrieve glyph names!
9
9
  *
10
- * Copyright (C) 1996-2024 by
10
+ * Copyright (C) 1996-2025 by
11
11
  * David Turner, Robert Wilhelm, and Werner Lemberg.
12
12
  *
13
13
  * This file is part of the FreeType project, and may only be used,
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * FreeType path stroker (specification).
6
6
  *
7
- * Copyright (C) 2002-2024 by
7
+ * Copyright (C) 2002-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,
@@ -5,7 +5,7 @@
5
5
  * FreeType synthesizing code for emboldening and slanting
6
6
  * (specification).
7
7
  *
8
- * Copyright (C) 2000-2024 by
8
+ * Copyright (C) 2000-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 low-level system interface definition (specification).
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
  * FreeType trigonometric functions (specification).
6
6
  *
7
- * Copyright (C) 2001-2024 by
7
+ * Copyright (C) 2001-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,