@img/sharp-libvips-dev 1.0.4 → 1.1.0-rc1

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 (114) hide show
  1. package/cplusplus/VImage.cpp +2 -2
  2. package/cplusplus/vips-operators.cpp +79 -3
  3. package/include/aom/aom.h +1 -1
  4. package/include/aom/aom_codec.h +4 -4
  5. package/include/aom/aom_decoder.h +1 -1
  6. package/include/aom/aom_encoder.h +3 -1
  7. package/include/aom/aom_external_partition.h +1 -1
  8. package/include/aom/aom_frame_buffer.h +1 -1
  9. package/include/aom/aom_image.h +1 -1
  10. package/include/aom/aom_integer.h +1 -9
  11. package/include/aom/aomcx.h +47 -4
  12. package/include/aom/aomdx.h +1 -1
  13. package/include/archive.h +2 -2
  14. package/include/archive_entry.h +7 -1
  15. package/include/cairo/cairo-version.h +1 -1
  16. package/include/expat.h +1 -1
  17. package/include/expat_config.h +3 -6
  18. package/include/freetype2/freetype/config/ftconfig.h +1 -1
  19. package/include/freetype2/freetype/config/ftheader.h +1 -1
  20. package/include/freetype2/freetype/config/ftoption.h +17 -1
  21. package/include/freetype2/freetype/config/ftstdlib.h +1 -1
  22. package/include/freetype2/freetype/config/integer-types.h +1 -1
  23. package/include/freetype2/freetype/config/mac-support.h +1 -1
  24. package/include/freetype2/freetype/config/public-macros.h +1 -1
  25. package/include/freetype2/freetype/freetype.h +35 -83
  26. package/include/freetype2/freetype/ftadvanc.h +1 -1
  27. package/include/freetype2/freetype/ftbbox.h +1 -1
  28. package/include/freetype2/freetype/ftbdf.h +1 -1
  29. package/include/freetype2/freetype/ftbitmap.h +1 -1
  30. package/include/freetype2/freetype/ftbzip2.h +1 -1
  31. package/include/freetype2/freetype/ftcache.h +1 -1
  32. package/include/freetype2/freetype/ftcid.h +1 -1
  33. package/include/freetype2/freetype/ftcolor.h +1 -1
  34. package/include/freetype2/freetype/ftdriver.h +75 -1
  35. package/include/freetype2/freetype/fterrdef.h +1 -1
  36. package/include/freetype2/freetype/fterrors.h +1 -1
  37. package/include/freetype2/freetype/ftfntfmt.h +1 -1
  38. package/include/freetype2/freetype/ftgasp.h +1 -1
  39. package/include/freetype2/freetype/ftglyph.h +1 -1
  40. package/include/freetype2/freetype/ftgxval.h +1 -1
  41. package/include/freetype2/freetype/ftgzip.h +1 -1
  42. package/include/freetype2/freetype/ftimage.h +17 -12
  43. package/include/freetype2/freetype/ftincrem.h +1 -1
  44. package/include/freetype2/freetype/ftlcdfil.h +1 -1
  45. package/include/freetype2/freetype/ftlist.h +1 -1
  46. package/include/freetype2/freetype/ftlzw.h +1 -1
  47. package/include/freetype2/freetype/ftmac.h +1 -1
  48. package/include/freetype2/freetype/ftmm.h +31 -2
  49. package/include/freetype2/freetype/ftmodapi.h +1 -1
  50. package/include/freetype2/freetype/ftmoderr.h +1 -1
  51. package/include/freetype2/freetype/ftotval.h +1 -1
  52. package/include/freetype2/freetype/ftoutln.h +2 -2
  53. package/include/freetype2/freetype/ftparams.h +1 -1
  54. package/include/freetype2/freetype/ftpfr.h +1 -1
  55. package/include/freetype2/freetype/ftrender.h +1 -1
  56. package/include/freetype2/freetype/ftsizes.h +1 -1
  57. package/include/freetype2/freetype/ftsnames.h +1 -1
  58. package/include/freetype2/freetype/ftstroke.h +1 -1
  59. package/include/freetype2/freetype/ftsynth.h +1 -1
  60. package/include/freetype2/freetype/ftsystem.h +1 -1
  61. package/include/freetype2/freetype/fttrigon.h +1 -1
  62. package/include/freetype2/freetype/fttypes.h +1 -1
  63. package/include/freetype2/freetype/ftwinfnt.h +1 -1
  64. package/include/freetype2/freetype/otsvg.h +1 -1
  65. package/include/freetype2/freetype/t1tables.h +1 -59
  66. package/include/freetype2/freetype/ttnameid.h +1 -1
  67. package/include/freetype2/freetype/tttables.h +4 -3
  68. package/include/freetype2/freetype/tttags.h +1 -1
  69. package/include/freetype2/ft2build.h +1 -1
  70. package/include/fribidi/fribidi-config.h +2 -2
  71. package/include/fribidi/fribidi-unicode-version.h +3 -3
  72. package/include/gio-unix-2.0/gio/gunixmounts.h +11 -2
  73. package/include/glib-2.0/gio/gioenums.h +2 -2
  74. package/include/glib-2.0/glib/gmain.h +52 -47
  75. package/include/glib-2.0/glib/gstring.h +4 -0
  76. package/include/glib-2.0/gobject/gobjectnotifyqueue.c +2 -2
  77. package/include/harfbuzz/hb-buffer.h +7 -0
  78. package/include/harfbuzz/hb-common.h +18 -0
  79. package/include/harfbuzz/hb-face.h +28 -0
  80. package/include/harfbuzz/hb-version.h +3 -3
  81. package/include/libpng16/png.h +13 -13
  82. package/include/libpng16/pngconf.h +4 -4
  83. package/include/libpng16/pnglibconf.h +1 -1
  84. package/include/librsvg-2.0/librsvg/rsvg-version.h +3 -3
  85. package/include/librsvg-2.0/librsvg/rsvg.h +2 -0
  86. package/include/libxml2/libxml/xmlexports.h +2 -2
  87. package/include/libxml2/libxml/xmlversion.h +4 -4
  88. package/include/png.h +13 -13
  89. package/include/pngconf.h +4 -4
  90. package/include/pnglibconf.h +1 -1
  91. package/include/tiffio.h +11 -11
  92. package/include/tiffvers.h +4 -4
  93. package/include/vips/VImage8.h +166 -60
  94. package/include/vips/arithmetic.h +9 -0
  95. package/include/vips/basic.h +8 -4
  96. package/include/vips/buf.h +0 -2
  97. package/include/vips/connection.h +0 -2
  98. package/include/vips/conversion.h +0 -3
  99. package/include/vips/create.h +11 -0
  100. package/include/vips/enumtypes.h +3 -3
  101. package/include/vips/foreign.h +4 -18
  102. package/include/vips/header.h +7 -0
  103. package/include/vips/image.h +7 -2
  104. package/include/vips/interpolate.h +2 -3
  105. package/include/vips/memory.h +19 -1
  106. package/include/vips/operation.h +2 -7
  107. package/include/vips/private.h +7 -0
  108. package/include/vips/util.h +6 -15
  109. package/include/vips/version.h +8 -8
  110. package/include/vips/vips.h +2 -0
  111. package/include/vips/vips8 +19 -12
  112. package/include/zlib.h +3 -3
  113. package/package.json +1 -1
  114. package/versions.json +14 -14
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * FreeType high-level API and common types (specification only).
6
6
  *
7
- * Copyright (C) 1996-2023 by
7
+ * Copyright (C) 1996-2024 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,
@@ -1322,9 +1322,13 @@ FT_BEGIN_HEADER
1322
1322
  * FT_FACE_FLAG_KERNING ::
1323
1323
  * The face contains kerning information. If set, the kerning distance
1324
1324
  * can be retrieved using the function @FT_Get_Kerning. Otherwise the
1325
- * function always returns the vector (0,0). Note that FreeType
1326
- * doesn't handle kerning data from the SFNT 'GPOS' table (as present
1327
- * in many OpenType fonts).
1325
+ * function always returns the vector (0,0).
1326
+ *
1327
+ * Note that for TrueType fonts only, FreeType supports both the 'kern'
1328
+ * table and the basic, pair-wise kerning feature from the 'GPOS' table
1329
+ * (with `TT_CONFIG_OPTION_GPOS_KERNING` enabled), though FreeType does
1330
+ * not support the more advanced GPOS layout features; use a library
1331
+ * like HarfBuzz for those instead.
1328
1332
  *
1329
1333
  * FT_FACE_FLAG_FAST_GLYPHS ::
1330
1334
  * THIS FLAG IS DEPRECATED. DO NOT USE OR TEST IT.
@@ -3767,87 +3771,18 @@ FT_BEGIN_HEADER
3767
3771
  * pixels and use the @FT_PIXEL_MODE_LCD_V mode.
3768
3772
  *
3769
3773
  * FT_RENDER_MODE_SDF ::
3770
- * This mode corresponds to 8-bit, single-channel signed distance field
3771
- * (SDF) bitmaps. Each pixel in the SDF grid is the value from the
3772
- * pixel's position to the nearest glyph's outline. The distances are
3773
- * calculated from the center of the pixel and are positive if they are
3774
- * filled by the outline (i.e., inside the outline) and negative
3775
- * otherwise. Check the note below on how to convert the output values
3776
- * to usable data.
3774
+ * The positive (unsigned) 8-bit bitmap values can be converted to the
3775
+ * single-channel signed distance field (SDF) by subtracting 128, with
3776
+ * the positive and negative results corresponding to the inside and
3777
+ * the outside of a glyph contour, respectively. The distance units are
3778
+ * arbitrarily determined by an adjustable @spread property.
3777
3779
  *
3778
3780
  * @note:
3779
- * The selected render mode only affects vector glyphs of a font.
3781
+ * The selected render mode only affects scalable vector glyphs of a font.
3780
3782
  * Embedded bitmaps often have a different pixel mode like
3781
3783
  * @FT_PIXEL_MODE_MONO. You can use @FT_Bitmap_Convert to transform them
3782
3784
  * into 8-bit pixmaps.
3783
3785
  *
3784
- * For @FT_RENDER_MODE_SDF the output bitmap buffer contains normalized
3785
- * distances that are packed into unsigned 8-bit values. To get pixel
3786
- * values in floating point representation use the following pseudo-C
3787
- * code for the conversion.
3788
- *
3789
- * ```
3790
- * // Load glyph and render using FT_RENDER_MODE_SDF,
3791
- * // then use the output buffer as follows.
3792
- *
3793
- * ...
3794
- * FT_Byte buffer = glyph->bitmap->buffer;
3795
- *
3796
- *
3797
- * for pixel in buffer
3798
- * {
3799
- * // `sd` is the signed distance and `spread` is the current spread;
3800
- * // the default spread is 2 and can be changed.
3801
- *
3802
- * float sd = (float)pixel - 128.0f;
3803
- *
3804
- *
3805
- * // Convert to pixel values.
3806
- * sd = ( sd / 128.0f ) * spread;
3807
- *
3808
- * // Store `sd` in a buffer or use as required.
3809
- * }
3810
- *
3811
- * ```
3812
- *
3813
- * FreeType has two rasterizers for generating SDF, namely:
3814
- *
3815
- * 1. `sdf` for generating SDF directly from glyph's outline, and
3816
- *
3817
- * 2. `bsdf` for generating SDF from rasterized bitmaps.
3818
- *
3819
- * Depending on the glyph type (i.e., outline or bitmap), one of the two
3820
- * rasterizers is chosen at runtime and used for generating SDFs. To
3821
- * force the use of `bsdf` you should render the glyph with any of the
3822
- * FreeType's other rendering modes (e.g., `FT_RENDER_MODE_NORMAL`) and
3823
- * then re-render with `FT_RENDER_MODE_SDF`.
3824
- *
3825
- * There are some issues with stability and possible failures of the SDF
3826
- * renderers (specifically `sdf`).
3827
- *
3828
- * 1. The `sdf` rasterizer is sensitive to really small features (e.g.,
3829
- * sharp turns that are less than 1~pixel) and imperfections in the
3830
- * glyph's outline, causing artifacts in the final output.
3831
- *
3832
- * 2. The `sdf` rasterizer has limited support for handling intersecting
3833
- * contours and *cannot* handle self-intersecting contours whatsoever.
3834
- * Self-intersection happens when a single connected contour
3835
- * intersects itself at some point; having these in your font
3836
- * definitely poses a problem to the rasterizer and cause artifacts,
3837
- * too.
3838
- *
3839
- * 3. Generating SDF for really small glyphs may result in undesirable
3840
- * output; the pixel grid (which stores distance information) becomes
3841
- * too coarse.
3842
- *
3843
- * 4. Since the output buffer is normalized, precision at smaller spreads
3844
- * is greater than precision at larger spread values because the
3845
- * output range of [0..255] gets mapped to a smaller SDF range. A
3846
- * spread of~2 should be sufficient in most cases.
3847
- *
3848
- * Points (1) and (2) can be avoided by using the `bsdf` rasterizer,
3849
- * which is more stable than the `sdf` rasterizer in general.
3850
- *
3851
3786
  */
3852
3787
  typedef enum FT_Render_Mode_
3853
3788
  {
@@ -4058,9 +3993,26 @@ FT_BEGIN_HEADER
4058
3993
  * out of the scope of this API function -- they can be implemented
4059
3994
  * through format-specific interfaces.
4060
3995
  *
4061
- * Kerning for OpenType fonts implemented in a 'GPOS' table is not
4062
- * supported; use @FT_HAS_KERNING to find out whether a font has data
4063
- * that can be extracted with `FT_Get_Kerning`.
3996
+ * Note that, for TrueType fonts only, this can extract data from both
3997
+ * the 'kern' table and the basic, pair-wise kerning feature from the
3998
+ * GPOS table (with `TT_CONFIG_OPTION_GPOS_KERNING` enabled), though
3999
+ * FreeType does not support the more advanced GPOS layout features; use
4000
+ * a library like HarfBuzz for those instead. If a font has both a
4001
+ * 'kern' table and kern features of a GPOS table, the 'kern' table will
4002
+ * be used.
4003
+ *
4004
+ * Also note for right-to-left scripts, the functionality may differ for
4005
+ * fonts with GPOS tables vs. 'kern' tables. For GPOS, right-to-left
4006
+ * fonts typically use both a placement offset and an advance for pair
4007
+ * positioning, which this API does not support, so it would output
4008
+ * kerning values of zero; though if the right-to-left font used only
4009
+ * advances in GPOS pair positioning, then this API could output kerning
4010
+ * values for it, but it would use `left_glyph` to mean the first glyph
4011
+ * for that case. Whereas 'kern' tables are always advance-only and
4012
+ * always store the left glyph first.
4013
+ *
4014
+ * Use @FT_HAS_KERNING to find out whether a font has data that can be
4015
+ * extracted with `FT_Get_Kerning`.
4064
4016
  */
4065
4017
  FT_EXPORT( FT_Error )
4066
4018
  FT_Get_Kerning( FT_Face face,
@@ -5222,7 +5174,7 @@ FT_BEGIN_HEADER
5222
5174
  */
5223
5175
  #define FREETYPE_MAJOR 2
5224
5176
  #define FREETYPE_MINOR 13
5225
- #define FREETYPE_PATCH 2
5177
+ #define FREETYPE_PATCH 3
5226
5178
 
5227
5179
 
5228
5180
  /**************************************************************************
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Quick computation of advance widths (specification only).
6
6
  *
7
- * Copyright (C) 2008-2023 by
7
+ * Copyright (C) 2008-2024 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 exact bbox computation (specification).
6
6
  *
7
- * Copyright (C) 1996-2023 by
7
+ * Copyright (C) 1996-2024 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 BDF-specific strings (specification).
6
6
  *
7
- * Copyright (C) 2002-2023 by
7
+ * Copyright (C) 2002-2024 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 utility functions for bitmaps (specification).
6
6
  *
7
- * Copyright (C) 2004-2023 by
7
+ * Copyright (C) 2004-2024 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
  * Bzip2-compressed stream support.
6
6
  *
7
- * Copyright (C) 2010-2023 by
7
+ * Copyright (C) 2010-2024 by
8
8
  * Joel Klinghed.
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 Cache subsystem (specification).
6
6
  *
7
- * Copyright (C) 1996-2023 by
7
+ * Copyright (C) 1996-2024 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 CID font information (specification).
6
6
  *
7
- * Copyright (C) 2007-2023 by
7
+ * Copyright (C) 2007-2024 by
8
8
  * Dereg Clegg and Michael Toftdal.
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's glyph color management (specification).
6
6
  *
7
- * Copyright (C) 2018-2023 by
7
+ * Copyright (C) 2018-2024 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 controlling driver modules (specification only).
6
6
  *
7
- * Copyright (C) 2017-2023 by
7
+ * Copyright (C) 2017-2024 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,
@@ -817,6 +817,80 @@ FT_BEGIN_HEADER
817
817
  * 2.5
818
818
  */
819
819
 
820
+
821
+ /**************************************************************************
822
+ *
823
+ * @property:
824
+ * spread
825
+ *
826
+ * @description:
827
+ * This property of the 'sdf' and 'bsdf' renderers defines how the signed
828
+ * distance field (SDF) is represented in the output bitmap. The output
829
+ * values are calculated as follows, '128 * ( SDF / spread + 1 )', with
830
+ * the result clamped to the 8-bit range [0..255]. Therefore, 'spread'
831
+ * is also the maximum euclidean distance from the edge after which the
832
+ * values are clamped. The spread is specified in pixels with the
833
+ * default value of 8. For accurate SDF texture mapping (interpolation),
834
+ * the spread should be large enough to accommodate the target grid unit.
835
+ *
836
+ * @example:
837
+ * The following example code demonstrates how to set the SDF spread
838
+ * (omitting the error handling).
839
+ *
840
+ * ```
841
+ * FT_Library library;
842
+ * FT_Int spread = 2;
843
+ *
844
+ *
845
+ * FT_Init_FreeType( &library );
846
+ *
847
+ * FT_Property_Set( library, "sdf", "spread", &spread );
848
+ * ```
849
+ *
850
+ * @note:
851
+ * FreeType has two rasterizers for generating SDF, namely:
852
+ *
853
+ * 1. `sdf` for generating SDF directly from glyph's outline, and
854
+ *
855
+ * 2. `bsdf` for generating SDF from rasterized bitmaps.
856
+ *
857
+ * Depending on the glyph type (i.e., outline or bitmap), one of the two
858
+ * rasterizers is chosen at runtime and used for generating SDFs. To
859
+ * force the use of `bsdf` you should render the glyph with any of the
860
+ * FreeType's other rendering modes (e.g., `FT_RENDER_MODE_NORMAL`) and
861
+ * then re-render with `FT_RENDER_MODE_SDF`.
862
+ *
863
+ * There are some issues with stability and possible failures of the SDF
864
+ * renderers (specifically `sdf`).
865
+ *
866
+ * 1. The `sdf` rasterizer is sensitive to really small features (e.g.,
867
+ * sharp turns that are less than 1~pixel) and imperfections in the
868
+ * glyph's outline, causing artifacts in the final output.
869
+ *
870
+ * 2. The `sdf` rasterizer has limited support for handling intersecting
871
+ * contours and *cannot* handle self-intersecting contours whatsoever.
872
+ * Self-intersection happens when a single connected contour
873
+ * intersects itself at some point; having these in your font
874
+ * definitely poses a problem to the rasterizer and cause artifacts,
875
+ * too.
876
+ *
877
+ * 3. Generating SDF for really small glyphs may result in undesirable
878
+ * output; the pixel grid (which stores distance information) becomes
879
+ * too coarse.
880
+ *
881
+ * 4. Since the output buffer is normalized, precision at smaller spreads
882
+ * is greater than precision at larger spread values because the
883
+ * output range of [0..255] gets mapped to a smaller SDF range. A
884
+ * spread of~2 should be sufficient in most cases.
885
+ *
886
+ * Points (1) and (2) can be avoided by using the `bsdf` rasterizer,
887
+ * which is more stable than the `sdf` rasterizer in general.
888
+ *
889
+ * @since:
890
+ * 2.11
891
+ */
892
+
893
+
820
894
  /**************************************************************************
821
895
  *
822
896
  * @property:
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * FreeType error codes (specification).
6
6
  *
7
- * Copyright (C) 2002-2023 by
7
+ * Copyright (C) 2002-2024 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 error code handling (specification).
6
6
  *
7
- * Copyright (C) 1996-2023 by
7
+ * Copyright (C) 1996-2024 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
  * Support functions for font formats.
6
6
  *
7
- * Copyright (C) 2002-2023 by
7
+ * Copyright (C) 2002-2024 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
  * Access of TrueType's 'gasp' table (specification).
6
6
  *
7
- * Copyright (C) 2007-2023 by
7
+ * Copyright (C) 2007-2024 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 convenience functions to handle glyphs (specification).
6
6
  *
7
- * Copyright (C) 1996-2023 by
7
+ * Copyright (C) 1996-2024 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 TrueTypeGX/AAT tables (specification).
6
6
  *
7
- * Copyright (C) 2004-2023 by
7
+ * Copyright (C) 2004-2024 by
8
8
  * Masatake YAMATO, Redhat K.K,
9
9
  * David Turner, Robert Wilhelm, and Werner Lemberg.
10
10
  *
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Gzip-compressed stream support.
6
6
  *
7
- * Copyright (C) 2002-2023 by
7
+ * Copyright (C) 2002-2024 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 glyph image formats and default raster interface
6
6
  * (specification).
7
7
  *
8
- * Copyright (C) 1996-2023 by
8
+ * Copyright (C) 1996-2024 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,
@@ -21,6 +21,11 @@
21
21
  * Note: A 'raster' is simply a scan-line converter, used to render
22
22
  * `FT_Outline`s into `FT_Bitmap`s.
23
23
  *
24
+ * Note: This file can be used for `STANDALONE_` compilation of raster
25
+ * (B/W) and smooth (anti-aliased) renderers. Therefore, it must
26
+ * rely on standard variable types only instead of aliases in
27
+ * `fttypes.h`.
28
+ *
24
29
  */
25
30
 
26
31
 
@@ -318,7 +323,7 @@ FT_BEGIN_HEADER
318
323
  *
319
324
  * If bit~2 is set, bits 5-7 contain the drop-out mode (as defined in
320
325
  * the OpenType specification; the value is the same as the argument to
321
- * the 'SCANMODE' instruction).
326
+ * the 'SCANTYPE' instruction).
322
327
  *
323
328
  * Bits 3 and~4 are reserved for internal purposes.
324
329
  *
@@ -341,14 +346,14 @@ FT_BEGIN_HEADER
341
346
  */
342
347
  typedef struct FT_Outline_
343
348
  {
344
- short n_contours; /* number of contours in glyph */
345
- short n_points; /* number of points in the glyph */
349
+ unsigned short n_contours; /* number of contours in glyph */
350
+ unsigned short n_points; /* number of points in the glyph */
346
351
 
347
- FT_Vector* points; /* the outline's points */
348
- char* tags; /* the points flags */
349
- short* contours; /* the contour end points */
352
+ FT_Vector* points; /* the outline's points */
353
+ unsigned char* tags; /* the points flags */
354
+ unsigned short* contours; /* the contour end points */
350
355
 
351
- int flags; /* outline masks */
356
+ int flags; /* outline masks */
352
357
 
353
358
  } FT_Outline;
354
359
 
@@ -356,8 +361,8 @@ FT_BEGIN_HEADER
356
361
 
357
362
  /* Following limits must be consistent with */
358
363
  /* FT_Outline.{n_contours,n_points} */
359
- #define FT_OUTLINE_CONTOURS_MAX SHRT_MAX
360
- #define FT_OUTLINE_POINTS_MAX SHRT_MAX
364
+ #define FT_OUTLINE_CONTOURS_MAX USHRT_MAX
365
+ #define FT_OUTLINE_POINTS_MAX USHRT_MAX
361
366
 
362
367
 
363
368
  /**************************************************************************
@@ -434,8 +439,8 @@ FT_BEGIN_HEADER
434
439
  * rasterizer; see the `tags` field in @FT_Outline.
435
440
  *
436
441
  * Please refer to the description of the 'SCANTYPE' instruction in the
437
- * OpenType specification (in file `ttinst1.doc`) how simple drop-outs,
438
- * smart drop-outs, and stubs are defined.
442
+ * [OpenType specification](https://learn.microsoft.com/en-us/typography/opentype/spec/tt_instructions#scantype)
443
+ * how simple drop-outs, smart drop-outs, and stubs are defined.
439
444
  */
440
445
  #define FT_OUTLINE_NONE 0x0
441
446
  #define FT_OUTLINE_OWNER 0x1
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * FreeType incremental loading (specification).
6
6
  *
7
- * Copyright (C) 2002-2023 by
7
+ * Copyright (C) 2002-2024 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 API for color filtering of subpixel bitmap glyphs
6
6
  * (specification).
7
7
  *
8
- * Copyright (C) 2006-2023 by
8
+ * Copyright (C) 2006-2024 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
  * Generic list support for FreeType (specification).
6
6
  *
7
- * Copyright (C) 1996-2023 by
7
+ * Copyright (C) 1996-2024 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
  * LZW-compressed stream support.
6
6
  *
7
- * Copyright (C) 2004-2023 by
7
+ * Copyright (C) 2004-2024 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
  * Additional Mac-specific API.
6
6
  *
7
- * Copyright (C) 1996-2023 by
7
+ * Copyright (C) 1996-2024 by
8
8
  * Just van Rossum, 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 Multiple Master font interface (specification).
6
6
  *
7
- * Copyright (C) 1996-2023 by
7
+ * Copyright (C) 1996-2024 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,
@@ -19,8 +19,13 @@
19
19
  #ifndef FTMM_H_
20
20
  #define FTMM_H_
21
21
 
22
+ #include <freetype/freetype.h>
22
23
 
23
- #include <freetype/t1tables.h>
24
+ #ifdef FREETYPE_H
25
+ #error "freetype.h of FreeType 1 has been loaded!"
26
+ #error "Please fix the directory search order for header files"
27
+ #error "so that freetype.h of FreeType 2 is found first."
28
+ #endif
24
29
 
25
30
 
26
31
  FT_BEGIN_HEADER
@@ -53,6 +58,30 @@ FT_BEGIN_HEADER
53
58
  */
54
59
 
55
60
 
61
+ /**************************************************************************
62
+ *
63
+ * @enum:
64
+ * T1_MAX_MM_XXX
65
+ *
66
+ * @description:
67
+ * Multiple Masters limits as defined in their specifications.
68
+ *
69
+ * @values:
70
+ * T1_MAX_MM_AXIS ::
71
+ * The maximum number of Multiple Masters axes.
72
+ *
73
+ * T1_MAX_MM_DESIGNS ::
74
+ * The maximum number of Multiple Masters designs.
75
+ *
76
+ * T1_MAX_MM_MAP_POINTS ::
77
+ * The maximum number of elements in a design map.
78
+ *
79
+ */
80
+ #define T1_MAX_MM_AXIS 4
81
+ #define T1_MAX_MM_DESIGNS 16
82
+ #define T1_MAX_MM_MAP_POINTS 20
83
+
84
+
56
85
  /**************************************************************************
57
86
  *
58
87
  * @struct:
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * FreeType modules public interface (specification).
6
6
  *
7
- * Copyright (C) 1996-2023 by
7
+ * Copyright (C) 1996-2024 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-2023 by
7
+ * Copyright (C) 2001-2024 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-2023 by
7
+ * Copyright (C) 2004-2024 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-2023 by
8
+ * Copyright (C) 1996-2024 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,
@@ -112,7 +112,7 @@ FT_BEGIN_HEADER
112
112
  * Degenerate contours, segments, and Bezier arcs may be reported. In
113
113
  * most cases, it is best to filter these out before using the outline
114
114
  * for stroking or other path modification purposes (which may cause
115
- * degenerate segments to become non-degenrate and visible, like when
115
+ * degenerate segments to become non-degenerate and visible, like when
116
116
  * stroke caps are used or the path is otherwise outset). Some glyph
117
117
  * outlines may contain deliberate degenerate single points for mark
118
118
  * attachement.
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * FreeType API for possible FT_Parameter tags (specification only).
6
6
  *
7
- * Copyright (C) 2017-2023 by
7
+ * Copyright (C) 2017-2024 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-2023 by
7
+ * Copyright (C) 2002-2024 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-2023 by
7
+ * Copyright (C) 1996-2024 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,