@img/sharp-libvips-dev 1.1.0 → 1.2.0-rc.1

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 (120) hide show
  1. package/cplusplus/vips-operators.cpp +39 -0
  2. package/include/archive.h +53 -2
  3. package/include/archive_entry.h +56 -25
  4. package/include/ffi.h +20 -2
  5. package/include/fontconfig/fontconfig.h +1 -1
  6. package/include/glib-2.0/gio/gio-visibility.h +34 -0
  7. package/include/glib-2.0/gio/gzlibcompressor.h +6 -0
  8. package/include/glib-2.0/girepository/gi-visibility.h +34 -0
  9. package/include/glib-2.0/girepository/gitypes.h +6 -0
  10. package/include/glib-2.0/glib/gbitlock.h +11 -0
  11. package/include/glib-2.0/glib/gdate.h +6 -0
  12. package/include/glib-2.0/glib/glib-visibility.h +34 -0
  13. package/include/glib-2.0/glib/gmain.h +13 -10
  14. package/include/glib-2.0/glib/gmessages.h +4 -1
  15. package/include/glib-2.0/glib/gstring.h +2 -0
  16. package/include/glib-2.0/glib/gversionmacros.h +9 -0
  17. package/include/glib-2.0/gmodule/gmodule-visibility.h +34 -0
  18. package/include/glib-2.0/gobject/gobject-visibility.h +34 -0
  19. package/include/harfbuzz/hb-common.h +1 -431
  20. package/include/harfbuzz/hb-deprecated.h +80 -2
  21. package/include/harfbuzz/hb-draw.h +2 -10
  22. package/include/harfbuzz/hb-face.h +1 -1
  23. package/include/harfbuzz/hb-font.h +55 -36
  24. package/include/harfbuzz/hb-paint.h +5 -3
  25. package/include/harfbuzz/hb-script-list.h +484 -0
  26. package/include/harfbuzz/hb-subset.h +22 -2
  27. package/include/harfbuzz/hb-version.h +3 -3
  28. package/include/libheif/heif.h +2 -0
  29. package/include/libheif/heif_version.h +2 -2
  30. package/include/libpng16/png.h +10 -10
  31. package/include/libpng16/pngconf.h +20 -27
  32. package/include/libpng16/pnglibconf.h +1 -1
  33. package/include/libxml2/libxml/HTMLparser.h +2 -2
  34. package/include/libxml2/libxml/parser.h +2 -0
  35. package/include/libxml2/libxml/xmlIO.h +2 -2
  36. package/include/libxml2/libxml/xmlerror.h +1 -1
  37. package/include/libxml2/libxml/xmlversion.h +4 -4
  38. package/include/pixman-1/pixman-version.h +2 -2
  39. package/include/pixman-1/pixman.h +200 -0
  40. package/include/png.h +10 -10
  41. package/include/pngconf.h +20 -27
  42. package/include/pnglibconf.h +1 -1
  43. package/include/vips/VImage8.h +62 -14
  44. package/include/vips/arithmetic.h +34 -34
  45. package/include/vips/basic.h +16 -0
  46. package/include/vips/buf.h +0 -5
  47. package/include/vips/colour.h +6 -7
  48. package/include/vips/connection.h +25 -37
  49. package/include/vips/enumtypes.h +11 -2
  50. package/include/vips/foreign.h +73 -43
  51. package/include/vips/format.h +7 -5
  52. package/include/vips/gate.h +0 -11
  53. package/include/vips/header.h +11 -11
  54. package/include/vips/image.h +8 -3
  55. package/include/vips/interpolate.h +0 -2
  56. package/include/vips/memory.h +4 -0
  57. package/include/vips/mosaicing.h +4 -0
  58. package/include/vips/object.h +14 -18
  59. package/include/vips/operation.h +0 -2
  60. package/include/vips/private.h +50 -2
  61. package/include/vips/region.h +1 -3
  62. package/include/vips/resample.h +2 -0
  63. package/include/vips/semaphore.h +8 -3
  64. package/include/vips/thread.h +1 -24
  65. package/include/vips/threadpool.h +0 -6
  66. package/include/vips/type.h +13 -9
  67. package/include/vips/util.h +17 -98
  68. package/include/vips/vector.h +0 -4
  69. package/include/vips/version.h +8 -8
  70. package/include/vips/vips.h +1 -0
  71. package/package.json +1 -1
  72. package/versions.json +11 -11
  73. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-animation.h +0 -221
  74. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-autocleanups.h +0 -37
  75. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-core.h +0 -525
  76. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-enum-types.h +0 -40
  77. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-features.h +0 -115
  78. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-io.h +0 -481
  79. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-loader.h +0 -113
  80. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-macros.h +0 -718
  81. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-marshal.h +0 -33
  82. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-simple-anim.h +0 -70
  83. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-transform.h +0 -168
  84. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h +0 -46
  85. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixdata.h +0 -165
  86. package/include/glib-2.0/glib/gwin32.h +0 -142
  87. package/include/harfbuzz/hb-subset-repacker.h +0 -81
  88. package/include/hwy/ops/tuple-inl.h +0 -125
  89. package/include/orc-0.4/orc/orc-stdint.h +0 -1
  90. package/include/orc-0.4/orc/orc.h +0 -16
  91. package/include/orc-0.4/orc/orcarm.h +0 -879
  92. package/include/orc-0.4/orc/orcbytecode.h +0 -35
  93. package/include/orc-0.4/orc/orcbytecodes.h +0 -255
  94. package/include/orc-0.4/orc/orccode.h +0 -53
  95. package/include/orc-0.4/orc/orccompiler.h +0 -176
  96. package/include/orc-0.4/orc/orcconstant.h +0 -39
  97. package/include/orc-0.4/orc/orccpu.h +0 -21
  98. package/include/orc-0.4/orc/orccpuinsn.h +0 -40
  99. package/include/orc-0.4/orc/orcdebug.h +0 -158
  100. package/include/orc-0.4/orc/orcemulateopcodes.h +0 -203
  101. package/include/orc-0.4/orc/orcexecutor.h +0 -135
  102. package/include/orc-0.4/orc/orcfunctions.h +0 -93
  103. package/include/orc-0.4/orc/orcinstruction.h +0 -39
  104. package/include/orc-0.4/orc/orcinternal.h +0 -46
  105. package/include/orc-0.4/orc/orclimits.h +0 -94
  106. package/include/orc-0.4/orc/orcmips.h +0 -229
  107. package/include/orc-0.4/orc/orcmmx.h +0 -79
  108. package/include/orc-0.4/orc/orcneon.h +0 -43
  109. package/include/orc-0.4/orc/orconce.h +0 -166
  110. package/include/orc-0.4/orc/orcopcode.h +0 -63
  111. package/include/orc-0.4/orc/orcparse.h +0 -27
  112. package/include/orc-0.4/orc/orcpowerpc.h +0 -209
  113. package/include/orc-0.4/orc/orcprogram.h +0 -192
  114. package/include/orc-0.4/orc/orcrule.h +0 -52
  115. package/include/orc-0.4/orc/orcsse.h +0 -55
  116. package/include/orc-0.4/orc/orctarget.h +0 -115
  117. package/include/orc-0.4/orc/orcutils.h +0 -238
  118. package/include/orc-0.4/orc/orcvariable.h +0 -81
  119. package/include/orc-0.4/orc/orcx86.h +0 -199
  120. package/include/orc-0.4/orc/orcx86insn.h +0 -672
@@ -82,8 +82,6 @@ typedef struct _VipsForeignClass {
82
82
 
83
83
  } VipsForeignClass;
84
84
 
85
- /* Don't put spaces around void here, it breaks gtk-doc.
86
- */
87
85
  VIPS_API
88
86
  GType vips_foreign_get_type(void);
89
87
 
@@ -117,8 +115,8 @@ typedef enum /*< flags >*/ {
117
115
  * How sensitive loaders are to errors, from never stop (very insensitive), to
118
116
  * stop on the smallest warning (very sensitive).
119
117
  *
120
- * Each one implies the ones before it, so #VIPS_FAIL_ON_ERROR implies
121
- * #VIPS_FAIL_ON_TRUNCATED.
118
+ * Each one implies the ones before it, so [enum@Vips.FailOn.ERROR] implies
119
+ * [enum@Vips.FailOn.TRUNCATED].
122
120
  */
123
121
  typedef enum {
124
122
  VIPS_FAIL_ON_NONE,
@@ -145,6 +143,7 @@ typedef enum {
145
143
 
146
144
  typedef struct _VipsForeignLoad {
147
145
  VipsForeign parent_object;
146
+
148
147
  /*< private >*/
149
148
 
150
149
  /* Set TRUE to force open via memory.
@@ -201,11 +200,12 @@ typedef struct _VipsForeignLoad {
201
200
 
202
201
  typedef struct _VipsForeignLoadClass {
203
202
  VipsForeignClass parent_class;
203
+
204
204
  /*< public >*/
205
205
 
206
206
  /* Is a file in this format.
207
207
  *
208
- * This function should return %TRUE if the file contains an image of
208
+ * This function should return `TRUE` if the file contains an image of
209
209
  * this type. If you don't define this function, #VipsForeignLoad
210
210
  * will use @suffs instead.
211
211
  */
@@ -213,14 +213,14 @@ typedef struct _VipsForeignLoadClass {
213
213
 
214
214
  /* Is a buffer in this format.
215
215
  *
216
- * This function should return %TRUE if the buffer contains an image of
216
+ * This function should return `TRUE` if the buffer contains an image of
217
217
  * this type.
218
218
  */
219
219
  gboolean (*is_a_buffer)(const void *data, size_t size);
220
220
 
221
221
  /* Is a stream in this format.
222
222
  *
223
- * This function should return %TRUE if the stream contains an image of
223
+ * This function should return `TRUE` if the stream contains an image of
224
224
  * this type.
225
225
  */
226
226
  gboolean (*is_a_source)(VipsSource *source);
@@ -268,8 +268,6 @@ typedef struct _VipsForeignLoadClass {
268
268
  int (*load)(VipsForeignLoad *load);
269
269
  } VipsForeignLoadClass;
270
270
 
271
- /* Don't put spaces around void here, it breaks gtk-doc.
272
- */
273
271
  VIPS_API
274
272
  GType vips_foreign_load_get_type(void);
275
273
 
@@ -310,25 +308,52 @@ void vips_foreign_load_invalidate(VipsImage *image);
310
308
  VIPS_TYPE_FOREIGN_SAVE, VipsForeignSaveClass))
311
309
 
312
310
  /**
313
- * VipsSaveable:
314
- * @VIPS_SAVEABLE_MONO: 1 band (eg. CSV)
315
- * @VIPS_SAVEABLE_RGB: 1 or 3 bands (eg. PPM)
316
- * @VIPS_SAVEABLE_RGBA: 1, 2, 3 or 4 bands (eg. PNG)
317
- * @VIPS_SAVEABLE_RGBA_ONLY: 3 or 4 bands (eg. WEBP)
318
- * @VIPS_SAVEABLE_RGB_CMYK: 1, 3 or 4 bands (eg. JPEG)
319
- * @VIPS_SAVEABLE_ANY: any number of bands (eg. TIFF)
320
- *
321
- * See also: #VipsForeignSave.
311
+ * VipsForeignSaveable:
312
+ * @VIPS_FOREIGN_SAVEABLE_ANY: saver supports everything (eg. TIFF)
313
+ * @VIPS_FOREIGN_SAVEABLE_MONO: 1 band
314
+ * @VIPS_FOREIGN_SAVEABLE_RGB: 3 bands
315
+ * @VIPS_FOREIGN_SAVEABLE_CMYK: 4 bands
316
+ * @VIPS_FOREIGN_SAVEABLE_ALPHA: an extra band
317
+ *
318
+ * The set of image types supported by a saver.
319
+ *
320
+ * ::: seealso
321
+ * [class@ForeignSave].
322
322
  */
323
- typedef enum {
324
- VIPS_SAVEABLE_MONO,
325
- VIPS_SAVEABLE_RGB,
326
- VIPS_SAVEABLE_RGBA,
327
- VIPS_SAVEABLE_RGBA_ONLY,
328
- VIPS_SAVEABLE_RGB_CMYK,
329
- VIPS_SAVEABLE_ANY,
330
- VIPS_SAVEABLE_LAST
331
- } VipsSaveable;
323
+ typedef enum /*< flags >*/ {
324
+ VIPS_FOREIGN_SAVEABLE_ANY = 0,
325
+ VIPS_FOREIGN_SAVEABLE_MONO = 1,
326
+ VIPS_FOREIGN_SAVEABLE_RGB = 2,
327
+ VIPS_FOREIGN_SAVEABLE_CMYK = 4,
328
+ VIPS_FOREIGN_SAVEABLE_ALPHA = 8,
329
+
330
+ VIPS_FOREIGN_SAVEABLE_ALL = (VIPS_FOREIGN_SAVEABLE_MONO |
331
+ VIPS_FOREIGN_SAVEABLE_RGB |
332
+ VIPS_FOREIGN_SAVEABLE_CMYK |
333
+ VIPS_FOREIGN_SAVEABLE_ALPHA)
334
+ } VipsForeignSaveable;
335
+
336
+ /**
337
+ * VipsForeignCoding:
338
+ * @VIPS_FOREIGN_CODING_NONE: saver supports [enum@Vips.Coding.NONE]
339
+ * @VIPS_FOREIGN_CODING_LABQ: saver supports [enum@Vips.Coding.LABQ]
340
+ * @VIPS_FOREIGN_CODING_RAD: saver supports [enum@Vips.Coding.RAD]
341
+ * @VIPS_FOREIGN_CODING_ALL: saver supports all coding types
342
+ *
343
+ * The set of coding types supported by a saver.
344
+ *
345
+ * ::: seealso
346
+ * [enum@Coding].
347
+ */
348
+ typedef enum /*< flags >*/ {
349
+ VIPS_FOREIGN_CODING_NONE = 1 << 0,
350
+ VIPS_FOREIGN_CODING_LABQ = 1 << 1,
351
+ VIPS_FOREIGN_CODING_RAD = 1 << 2,
352
+
353
+ VIPS_FOREIGN_CODING_ALL = (VIPS_FOREIGN_CODING_NONE |
354
+ VIPS_FOREIGN_CODING_LABQ |
355
+ VIPS_FOREIGN_CODING_RAD)
356
+ } VipsForeignCoding;
332
357
 
333
358
  /**
334
359
  * VipsForeignKeep:
@@ -354,7 +379,7 @@ typedef enum /*< flags >*/ {
354
379
  VIPS_FOREIGN_KEEP_XMP |
355
380
  VIPS_FOREIGN_KEEP_IPTC |
356
381
  VIPS_FOREIGN_KEEP_ICC |
357
- VIPS_FOREIGN_KEEP_OTHER),
382
+ VIPS_FOREIGN_KEEP_OTHER)
358
383
  } VipsForeignKeep;
359
384
 
360
385
  typedef struct _VipsForeignSave {
@@ -403,11 +428,11 @@ typedef struct _VipsForeignSaveClass {
403
428
 
404
429
  /* How this format treats bands.
405
430
  *
406
- * @saveable describes the bands that your saver can handle. For
431
+ * @saveable describes the image types that your saver can handle. For
407
432
  * example, PPM images can have 1 or 3 bands (mono or RGB), so it
408
- * uses #VIPS_SAVEABLE_RGB.
433
+ * uses [flags@Vips.ForeignSaveable.MONO] | [flags@Vips.ForeignSaveable.RGB].
409
434
  */
410
- VipsSaveable saveable;
435
+ VipsForeignSaveable saveable;
411
436
 
412
437
  /* How this format treats band formats.
413
438
  *
@@ -417,16 +442,15 @@ typedef struct _VipsForeignSaveClass {
417
442
  */
418
443
  VipsBandFormat *format_table;
419
444
 
420
- /* The set of coding types this format can save. For example, jpeg can
421
- * only save NONE, so has NONE TRUE and RAD and LABQ FALSE.
445
+ /* The set of coding types this format can save. For example,
446
+ * [method@Image.vipssave] can save all coding types, so it
447
+ * uses [flags@Vips.ForeignCoding.ALL]
422
448
  *
423
- * Default NONE TRUE, RAD and LABQ FALSE.
449
+ * Default to [flags@Vips.ForeignCoding.NONE].
424
450
  */
425
- gboolean coding[VIPS_CODING_LAST];
451
+ VipsForeignCoding coding;
426
452
  } VipsForeignSaveClass;
427
453
 
428
- /* Don't put spaces around void here, it breaks gtk-doc.
429
- */
430
454
  VIPS_API
431
455
  GType vips_foreign_save_get_type(void);
432
456
 
@@ -632,6 +656,9 @@ VIPS_API
632
656
  int vips_fitsload(const char *filename, VipsImage **out, ...)
633
657
  G_GNUC_NULL_TERMINATED;
634
658
  VIPS_API
659
+ int vips_fitsload_source(VipsSource *source, VipsImage **out, ...)
660
+ G_GNUC_NULL_TERMINATED;
661
+ VIPS_API
635
662
  int vips_fitssave(VipsImage *in, const char *filename, ...)
636
663
  G_GNUC_NULL_TERMINATED;
637
664
 
@@ -745,15 +772,15 @@ int vips_pngsave_buffer(VipsImage *in, void **buf, size_t *len, ...)
745
772
  *
746
773
  * The netpbm file format to save as.
747
774
  *
748
- * #VIPS_FOREIGN_PPM_FORMAT_PBM images are single bit.
775
+ * [enum@Vips.ForeignPpmFormat.PBM] images are single bit.
749
776
  *
750
- * #VIPS_FOREIGN_PPM_FORMAT_PGM images are 8, 16, or 32-bits, one band.
777
+ * [enum@Vips.ForeignPpmFormat.PGM] images are 8, 16, or 32-bits, one band.
751
778
  *
752
- * #VIPS_FOREIGN_PPM_FORMAT_PPM images are 8, 16, or 32-bits, three bands.
779
+ * [enum@Vips.ForeignPpmFormat.PPM] images are 8, 16, or 32-bits, three bands.
753
780
  *
754
- * #VIPS_FOREIGN_PPM_FORMAT_PFM images are 32-bit float pixels.
781
+ * [enum@Vips.ForeignPpmFormat.PFM] images are 32-bit float pixels.
755
782
  *
756
- * #VIPS_FOREIGN_PPM_FORMAT_PNM images are anymap images -- the image format
783
+ * [enum@Vips.ForeignPpmFormat.PNM] images are anymap images -- the image format
757
784
  * is used to pick the saver.
758
785
  *
759
786
  */
@@ -770,6 +797,9 @@ VIPS_API
770
797
  int vips_ppmload(const char *filename, VipsImage **out, ...)
771
798
  G_GNUC_NULL_TERMINATED;
772
799
  VIPS_API
800
+ int vips_ppmload_buffer(void *buf, size_t len, VipsImage **out, ...)
801
+ G_GNUC_NULL_TERMINATED;
802
+ VIPS_API
773
803
  int vips_ppmload_source(VipsSource *source, VipsImage **out, ...)
774
804
  G_GNUC_NULL_TERMINATED;
775
805
  VIPS_API
@@ -980,7 +1010,7 @@ int vips_dzsave_target(VipsImage *in, VipsTarget *target, ...)
980
1010
  *
981
1011
  * The compression format to use inside a HEIF container.
982
1012
  *
983
- * This is assumed to use the same numbering as %heif_compression_format.
1013
+ * This is assumed to use the same numbering as `heif_compression_format`.
984
1014
  */
985
1015
  typedef enum {
986
1016
  VIPS_FOREIGN_HEIF_COMPRESSION_HEVC = 1,
@@ -64,6 +64,7 @@ typedef enum {
64
64
 
65
65
  typedef struct _VipsFormat {
66
66
  VipsObject parent_object;
67
+
67
68
  /*< public >*/
68
69
 
69
70
  } VipsFormat;
@@ -72,25 +73,26 @@ typedef struct _VipsFormatClass {
72
73
  VipsObjectClass parent_class;
73
74
 
74
75
  /*< public >*/
76
+
75
77
  /* Is a file in this format.
76
78
  */
77
- gboolean (*is_a)(const char *);
79
+ gboolean (*is_a)(const char *filename);
78
80
 
79
81
  /* Read just the header into the VipsImage.
80
82
  */
81
- int (*header)(const char *, VipsImage *);
83
+ int (*header)(const char *filename, VipsImage *image);
82
84
 
83
85
  /* Load the whole image.
84
86
  */
85
- int (*load)(const char *, VipsImage *);
87
+ int (*load)(const char *filename, VipsImage *image);
86
88
 
87
89
  /* Write the VipsImage to the file in this format.
88
90
  */
89
- int (*save)(VipsImage *, const char *);
91
+ int (*save)(VipsImage *image, const char *filename);
90
92
 
91
93
  /* Get the flags for this file in this format.
92
94
  */
93
- VipsFormatFlags (*get_flags)(const char *);
95
+ VipsFormatFlags (*get_flags)(const char *filename);
94
96
 
95
97
  /* Loop over formats in this order, default 0. We need this because
96
98
  * some formats can be read by several loaders (eg. tiff can be read
@@ -69,20 +69,9 @@ extern "C" {
69
69
  } \
70
70
  G_STMT_END
71
71
 
72
- extern gboolean vips__thread_profile;
73
-
74
72
  VIPS_API
75
73
  void vips_profile_set(gboolean profile);
76
74
 
77
- void vips__thread_profile_attach(const char *thread_name);
78
- void vips__thread_profile_detach(void);
79
- void vips__thread_profile_stop(void);
80
-
81
- void vips__thread_gate_start(const char *gate_name);
82
- void vips__thread_gate_stop(const char *gate_name);
83
-
84
- void vips__thread_malloc_free(gint64 size);
85
-
86
75
  #endif /*VIPS_GATE_H*/
87
76
 
88
77
  #ifdef __cplusplus
@@ -73,7 +73,7 @@ extern "C" {
73
73
  * The name we use to attach an ICC profile. The file read and write
74
74
  * operations for TIFF, JPEG, PNG and others use this item of metadata to
75
75
  * attach and save ICC profiles. The profile is updated by the
76
- * vips_icc_transform() operations.
76
+ * [method@Image.icc_transform] operations.
77
77
  */
78
78
  #define VIPS_META_ICC_NAME "icc-profile-data"
79
79
 
@@ -117,8 +117,8 @@ extern "C" {
117
117
  /**
118
118
  * VIPS_META_SEQUENTIAL:
119
119
  *
120
- * Images loaded via vips_sequential() have this int field defined. Some
121
- * operations (eg. vips_shrinkv()) add extra caches if they see it on their
120
+ * Images loaded via [method@Image.sequential] have this int field defined. Some
121
+ * operations (eg. [method@Image.shrinkv]) add extra caches if they see it on their
122
122
  * input.
123
123
  */
124
124
  #define VIPS_META_SEQUENTIAL "vips-sequential"
@@ -129,21 +129,21 @@ extern "C" {
129
129
  * The orientation tag for this image. An int from 1 - 8 using the standard
130
130
  * exif/tiff meanings.
131
131
  *
132
- * * 1 - The 0th row represents the visual top of the image, and the 0th column
132
+ * - 1 - The 0th row represents the visual top of the image, and the 0th column
133
133
  * represents the visual left-hand side.
134
- * * 2 - The 0th row represents the visual top of the image, and the 0th column
134
+ * - 2 - The 0th row represents the visual top of the image, and the 0th column
135
135
  * represents the visual right-hand side.
136
- * * 3 - The 0th row represents the visual bottom of the image, and the 0th
136
+ * - 3 - The 0th row represents the visual bottom of the image, and the 0th
137
137
  * column represents the visual right-hand side.
138
- * * 4 - The 0th row represents the visual bottom of the image, and the 0th
138
+ * - 4 - The 0th row represents the visual bottom of the image, and the 0th
139
139
  * column represents the visual left-hand side.
140
- * * 5 - The 0th row represents the visual left-hand side of the image, and the
140
+ * - 5 - The 0th row represents the visual left-hand side of the image, and the
141
141
  * 0th column represents the visual top.
142
- * * 6 - The 0th row represents the visual right-hand side of the image, and the
142
+ * - 6 - The 0th row represents the visual right-hand side of the image, and the
143
143
  * 0th column represents the visual top.
144
- * * 7 - The 0th row represents the visual right-hand side of the image, and the
144
+ * - 7 - The 0th row represents the visual right-hand side of the image, and the
145
145
  * 0th column represents the visual bottom.
146
- * * 8 - The 0th row represents the visual left-hand side of the image, and the
146
+ * - 8 - The 0th row represents the visual left-hand side of the image, and the
147
147
  * 0th column represents the visual bottom.
148
148
  */
149
149
  #define VIPS_META_ORIENTATION "orientation"
@@ -252,7 +252,7 @@ struct _VipsImage {
252
252
  VipsStopFn stop_fn;
253
253
  void *client1; /* user arguments */
254
254
  void *client2;
255
- GMutex *sslock; /* start-stop lock */
255
+ GMutex sslock; /* start-stop lock */
256
256
  GSList *regions; /* list of regions current for this image */
257
257
  VipsDemandStyle dhint; /* demand style hint */
258
258
 
@@ -367,8 +367,6 @@ typedef struct _VipsImageClass {
367
367
 
368
368
  } VipsImageClass;
369
369
 
370
- /* Don't put spaces around void here, it breaks gtk-doc.
371
- */
372
370
  VIPS_API
373
371
  GType vips_image_get_type(void);
374
372
 
@@ -444,6 +442,13 @@ void vips_image_minimise_all(VipsImage *image);
444
442
  VIPS_API
445
443
  gboolean vips_image_is_sequential(VipsImage *image);
446
444
 
445
+ VIPS_API
446
+ void vips_image_preeval(VipsImage *image);
447
+ VIPS_API
448
+ void vips_image_eval(VipsImage *image, guint64 processed);
449
+ VIPS_API
450
+ void vips_image_posteval(VipsImage *image);
451
+
447
452
  VIPS_API
448
453
  void vips_image_set_progress(VipsImage *image, gboolean progress);
449
454
  VIPS_API
@@ -91,8 +91,6 @@ typedef struct _VipsInterpolateClass {
91
91
  int window_offset;
92
92
  } VipsInterpolateClass;
93
93
 
94
- /* Don't put spaces around void here, it breaks gtk-doc.
95
- */
96
94
  VIPS_API
97
95
  GType vips_interpolate_get_type(void);
98
96
  VIPS_API
@@ -71,6 +71,8 @@ extern "C" {
71
71
  #define VIPS_ARRAY(OBJ, N, T) \
72
72
  ((T *) VIPS_MALLOC(OBJ, (N) * sizeof(T)))
73
73
 
74
+ #ifndef __GI_SCANNER__
75
+
74
76
  G_DEFINE_AUTOPTR_CLEANUP_FUNC(VipsImage, g_object_unref)
75
77
  G_DEFINE_AUTOPTR_CLEANUP_FUNC(VipsObject, g_object_unref)
76
78
  G_DEFINE_AUTOPTR_CLEANUP_FUNC(VipsRegion, g_object_unref)
@@ -89,6 +91,8 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(VipsOperation, g_object_unref)
89
91
  G_DEFINE_AUTOPTR_CLEANUP_FUNC(VipsArrayDouble, VipsArrayDouble_unref)
90
92
  G_DEFINE_AUTOPTR_CLEANUP_FUNC(VipsArrayImage, VipsArrayImage_unref)
91
93
 
94
+ #endif /* !__GI_SCANNER__ */
95
+
92
96
  VIPS_API
93
97
  void *vips_malloc(VipsObject *object, size_t size);
94
98
  VIPS_API
@@ -72,6 +72,10 @@ VIPS_API
72
72
  int vips_matrixinvert(VipsImage *m, VipsImage **out, ...)
73
73
  G_GNUC_NULL_TERMINATED;
74
74
 
75
+ VIPS_API
76
+ int vips_matrixmultiply(VipsImage *left, VipsImage *right, VipsImage **out, ...)
77
+ G_GNUC_NULL_TERMINATED;
78
+
75
79
  #ifdef __cplusplus
76
80
  }
77
81
  #endif /*__cplusplus*/
@@ -137,8 +137,7 @@ typedef enum /*< flags >*/ {
137
137
  #define VIPS_ARG_INTERPOLATE(CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET) \
138
138
  VIPS_ARG_OBJECT(CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET, VIPS_TYPE_INTERPOLATE)
139
139
 
140
- #define VIPS_ARG_BOOL(CLASS, NAME, PRIORITY, LONG, DESC, \
141
- FLAGS, OFFSET, VALUE) \
140
+ #define VIPS_ARG_BOOL(CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET, VALUE) \
142
141
  { \
143
142
  GParamSpec *pspec; \
144
143
  \
@@ -151,8 +150,7 @@ typedef enum /*< flags >*/ {
151
150
  pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET)); \
152
151
  }
153
152
 
154
- #define VIPS_ARG_DOUBLE(CLASS, NAME, PRIORITY, LONG, DESC, \
155
- FLAGS, OFFSET, MIN, MAX, VALUE) \
153
+ #define VIPS_ARG_DOUBLE(CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET, MIN, MAX, VALUE) \
156
154
  { \
157
155
  GParamSpec *pspec; \
158
156
  \
@@ -165,8 +163,7 @@ typedef enum /*< flags >*/ {
165
163
  pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET)); \
166
164
  }
167
165
 
168
- #define VIPS_ARG_BOXED(CLASS, NAME, PRIORITY, LONG, DESC, \
169
- FLAGS, OFFSET, TYPE) \
166
+ #define VIPS_ARG_BOXED(CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET, TYPE) \
170
167
  { \
171
168
  GParamSpec *pspec; \
172
169
  \
@@ -179,8 +176,7 @@ typedef enum /*< flags >*/ {
179
176
  pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET)); \
180
177
  }
181
178
 
182
- #define VIPS_ARG_INT(CLASS, NAME, PRIORITY, LONG, DESC, \
183
- FLAGS, OFFSET, MIN, MAX, VALUE) \
179
+ #define VIPS_ARG_INT(CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET, MIN, MAX, VALUE) \
184
180
  { \
185
181
  GParamSpec *pspec; \
186
182
  \
@@ -193,8 +189,7 @@ typedef enum /*< flags >*/ {
193
189
  pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET)); \
194
190
  }
195
191
 
196
- #define VIPS_ARG_UINT64(CLASS, NAME, PRIORITY, LONG, DESC, \
197
- FLAGS, OFFSET, MIN, MAX, VALUE) \
192
+ #define VIPS_ARG_UINT64(CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET, MIN, MAX, VALUE) \
198
193
  { \
199
194
  GParamSpec *pspec; \
200
195
  \
@@ -207,8 +202,7 @@ typedef enum /*< flags >*/ {
207
202
  pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET)); \
208
203
  }
209
204
 
210
- #define VIPS_ARG_ENUM(CLASS, NAME, PRIORITY, LONG, DESC, \
211
- FLAGS, OFFSET, TYPE, VALUE) \
205
+ #define VIPS_ARG_ENUM(CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET, TYPE, VALUE) \
212
206
  { \
213
207
  GParamSpec *pspec; \
214
208
  \
@@ -221,8 +215,7 @@ typedef enum /*< flags >*/ {
221
215
  pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET)); \
222
216
  }
223
217
 
224
- #define VIPS_ARG_FLAGS(CLASS, NAME, PRIORITY, LONG, DESC, \
225
- FLAGS, OFFSET, TYPE, VALUE) \
218
+ #define VIPS_ARG_FLAGS(CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET, TYPE, VALUE) \
226
219
  { \
227
220
  GParamSpec *pspec; \
228
221
  \
@@ -235,8 +228,7 @@ typedef enum /*< flags >*/ {
235
228
  pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET)); \
236
229
  }
237
230
 
238
- #define VIPS_ARG_STRING(CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET, \
239
- VALUE) \
231
+ #define VIPS_ARG_STRING(CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET, VALUE) \
240
232
  { \
241
233
  GParamSpec *pspec; \
242
234
  \
@@ -318,8 +310,14 @@ typedef GHashTable VipsArgumentTable;
318
310
 
319
311
  VIPS_API
320
312
  int vips_argument_get_id(void);
313
+
314
+ #ifndef __GI_SCANNER__
315
+
321
316
  void vips__object_set_member(VipsObject *object, GParamSpec *pspec,
322
317
  GObject **member, GObject *argument);
318
+
319
+ #endif /* !__GI_SCANNER__ */
320
+
323
321
  typedef void *(*VipsArgumentMapFn)(VipsObject *object, GParamSpec *pspec,
324
322
  VipsArgumentClass *argument_class,
325
323
  VipsArgumentInstance *argument_instance, void *a, void *b);
@@ -626,8 +624,6 @@ void vips_object_print_name(VipsObject *object);
626
624
  VIPS_API
627
625
  gboolean vips_object_sanity(VipsObject *object);
628
626
 
629
- /* Don't put spaces around void here, it breaks gtk-doc.
630
- */
631
627
  VIPS_API
632
628
  GType vips_object_get_type(void);
633
629
 
@@ -100,8 +100,6 @@ typedef struct _VipsOperationClass {
100
100
  void (*invalidate)(VipsOperation *operation);
101
101
  } VipsOperationClass;
102
102
 
103
- /* Don't put spaces around void here, it breaks gtk-doc.
104
- */
105
103
  VIPS_API
106
104
  GType vips_operation_get_type(void);
107
105
 
@@ -40,6 +40,8 @@
40
40
  extern "C" {
41
41
  #endif /*__cplusplus*/
42
42
 
43
+ #include <stdio.h>
44
+
43
45
  #define VIPS_SPARE (8)
44
46
 
45
47
  /* Private to iofuncs: the minimum number of scanlines we add above and below
@@ -218,8 +220,6 @@ int vips__view_image(struct _VipsImage *image);
218
220
  VIPS_API
219
221
  int _vips__argument_id;
220
222
 
221
- void vips__meta_init(void);
222
-
223
223
  // autoptr needs typed functions for autofree ... this needs to be in the
224
224
  // public API since downstream projects can use our auto defs
225
225
  VIPS_API
@@ -227,6 +227,54 @@ void VipsArrayDouble_unref(VipsArrayDouble *array);
227
227
  VIPS_API
228
228
  void VipsArrayImage_unref(VipsArrayImage *array);
229
229
 
230
+ extern gboolean vips__thread_profile;
231
+
232
+ void vips__thread_gate_start(const char *gate_name);
233
+ void vips__thread_gate_stop(const char *gate_name);
234
+
235
+ void vips__thread_malloc_free(gint64 size);
236
+
237
+ FILE *vips__file_open_read(const char *filename,
238
+ const char *fallback_dir, gboolean text_mode);
239
+ FILE *vips__file_open_write(const char *filename,
240
+ gboolean text_mode);
241
+
242
+ /* TODO(kleisauke): VIPS_API is required by vipsedit.
243
+ */
244
+ VIPS_API
245
+ int vips__write(int fd, const void *buf, size_t count);
246
+
247
+ /* TODO(kleisauke): VIPS_API is required by test_connections.
248
+ */
249
+ VIPS_API
250
+ int vips__open(const char *filename, int flags, int mode);
251
+
252
+ /* TODO(kleisauke): VIPS_API is required by vipsedit.
253
+ */
254
+ VIPS_API
255
+ char *vips__file_read(FILE *fp, const char *name, size_t *length_out);
256
+
257
+ /* TODO(kleisauke): VIPS_API is required by the magick module.
258
+ */
259
+ VIPS_API
260
+ gint64 vips__get_bytes(const char *filename, unsigned char buf[], gint64 len);
261
+
262
+ /* TODO(kleisauke): VIPS_API is required by vipsedit.
263
+ */
264
+ VIPS_API
265
+ gint64 vips__seek(int fd, gint64 pos, int whence);
266
+
267
+ /* TODO(kleisauke): VIPS_API is required by libvips-cpp and vipsheader.
268
+ */
269
+ VIPS_API
270
+ void vips__filename_split8(const char *name,
271
+ char *filename, char *option_string);
272
+
273
+ /* TODO(kleisauke): VIPS_API is required by jpegsave_file_fuzzer.
274
+ */
275
+ VIPS_API
276
+ char *vips__temp_name(const char *format);
277
+
230
278
  #ifdef __cplusplus
231
279
  }
232
280
  #endif /*__cplusplus*/
@@ -90,9 +90,9 @@ typedef enum {
90
90
  struct _VipsRegion {
91
91
  VipsObject parent_object;
92
92
 
93
- /*< public >*/
94
93
  /* Users may read these two fields.
95
94
  */
95
+ /*< public >*/
96
96
  VipsImage *im; /* Link back to parent image */
97
97
  VipsRect valid; /* Area of parent we can see */
98
98
 
@@ -128,8 +128,6 @@ typedef struct _VipsRegionClass {
128
128
 
129
129
  } VipsRegionClass;
130
130
 
131
- /* Don't put spaces around void here, it breaks gtk-doc.
132
- */
133
131
  VIPS_API
134
132
  GType vips_region_get_type(void);
135
133
 
@@ -45,6 +45,8 @@ typedef enum {
45
45
  VIPS_KERNEL_MITCHELL,
46
46
  VIPS_KERNEL_LANCZOS2,
47
47
  VIPS_KERNEL_LANCZOS3,
48
+ VIPS_KERNEL_MKS2013,
49
+ VIPS_KERNEL_MKS2021,
48
50
  VIPS_KERNEL_LAST
49
51
  } VipsKernel;
50
52
 
@@ -38,8 +38,6 @@
38
38
  #define VIPS_SEMAPHORE_H
39
39
 
40
40
  #include <glib.h>
41
- #include <vips/vips.h>
42
- #include <vips/thread.h>
43
41
 
44
42
  #ifdef __cplusplus
45
43
  extern "C" {
@@ -48,10 +46,17 @@ extern "C" {
48
46
  /* Implement our own semaphores.
49
47
  */
50
48
  typedef struct {
49
+ /* All fields are private.
50
+ */
51
+ /*< private >*/
51
52
  char *name;
52
53
  int v;
53
54
 
54
- GMutex *mutex;
55
+ GMutex mutex;
56
+
57
+ /* FIXME: sizeof(GCond) != sizeof(GCond *)
58
+ * https://gitlab.gnome.org/GNOME/glib/-/issues/1256
59
+ */
55
60
  GCond *cond;
56
61
  } VipsSemaphore;
57
62