@img/sharp-libvips-dev 0.0.1 → 0.0.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 (103) hide show
  1. package/README.md +2 -2
  2. package/cplusplus/VConnection.cpp +54 -54
  3. package/cplusplus/VError.cpp +20 -18
  4. package/cplusplus/VImage.cpp +636 -589
  5. package/cplusplus/VInterpolate.cpp +22 -22
  6. package/cplusplus/VRegion.cpp +4 -4
  7. package/cplusplus/vips-operators.cpp +2326 -2301
  8. package/include/aom/aom_codec.h +10 -6
  9. package/include/aom/aom_decoder.h +1 -1
  10. package/include/aom/aom_encoder.h +9 -2
  11. package/include/aom/aomcx.h +72 -3
  12. package/include/cairo/cairo-ft.h +1 -1
  13. package/include/cairo/cairo-gobject.h +8 -0
  14. package/include/cairo/cairo-svg.h +3 -3
  15. package/include/cairo/cairo-version.h +2 -2
  16. package/include/cairo/cairo.h +91 -24
  17. package/include/harfbuzz/hb-version.h +2 -2
  18. package/include/hwy/aligned_allocator.h +211 -0
  19. package/include/hwy/base.h +1517 -0
  20. package/include/hwy/cache_control.h +108 -0
  21. package/include/hwy/detect_compiler_arch.h +281 -0
  22. package/include/hwy/detect_targets.h +644 -0
  23. package/include/hwy/foreach_target.h +340 -0
  24. package/include/hwy/highway.h +435 -0
  25. package/include/hwy/highway_export.h +74 -0
  26. package/include/hwy/nanobenchmark.h +171 -0
  27. package/include/hwy/ops/arm_neon-inl.h +8913 -0
  28. package/include/hwy/ops/arm_sve-inl.h +5105 -0
  29. package/include/hwy/ops/emu128-inl.h +2811 -0
  30. package/include/hwy/ops/generic_ops-inl.h +4745 -0
  31. package/include/hwy/ops/ppc_vsx-inl.h +5716 -0
  32. package/include/hwy/ops/rvv-inl.h +5070 -0
  33. package/include/hwy/ops/scalar-inl.h +1995 -0
  34. package/include/hwy/ops/set_macros-inl.h +578 -0
  35. package/include/hwy/ops/shared-inl.h +539 -0
  36. package/include/hwy/ops/tuple-inl.h +125 -0
  37. package/include/hwy/ops/wasm_128-inl.h +5917 -0
  38. package/include/hwy/ops/x86_128-inl.h +11173 -0
  39. package/include/hwy/ops/x86_256-inl.h +7529 -0
  40. package/include/hwy/ops/x86_512-inl.h +6849 -0
  41. package/include/hwy/per_target.h +44 -0
  42. package/include/hwy/print-inl.h +62 -0
  43. package/include/hwy/print.h +75 -0
  44. package/include/hwy/robust_statistics.h +148 -0
  45. package/include/hwy/targets.h +338 -0
  46. package/include/hwy/timer-inl.h +200 -0
  47. package/include/hwy/timer.h +55 -0
  48. package/include/jconfig.h +2 -2
  49. package/include/jpeglib.h +3 -2
  50. package/include/libheif/heif.h +443 -377
  51. package/include/libheif/heif_cxx.h +4 -1
  52. package/include/libheif/heif_plugin.h +1 -1
  53. package/include/libheif/heif_properties.h +138 -0
  54. package/include/libheif/heif_regions.h +866 -0
  55. package/include/libheif/heif_version.h +3 -3
  56. package/include/vips/VConnection8.h +43 -49
  57. package/include/vips/VError8.h +27 -24
  58. package/include/vips/VImage8.h +4861 -4597
  59. package/include/vips/VInterpolate8.h +24 -27
  60. package/include/vips/VRegion8.h +32 -33
  61. package/include/vips/arithmetic.h +169 -169
  62. package/include/vips/basic.h +33 -33
  63. package/include/vips/buf.h +56 -54
  64. package/include/vips/colour.h +95 -95
  65. package/include/vips/connection.h +190 -193
  66. package/include/vips/conversion.h +91 -91
  67. package/include/vips/convolution.h +36 -30
  68. package/include/vips/create.h +63 -63
  69. package/include/vips/dbuf.h +35 -37
  70. package/include/vips/debug.h +65 -33
  71. package/include/vips/draw.h +41 -41
  72. package/include/vips/enumtypes.h +54 -51
  73. package/include/vips/error.h +63 -63
  74. package/include/vips/foreign.h +263 -223
  75. package/include/vips/format.h +48 -48
  76. package/include/vips/freqfilt.h +22 -22
  77. package/include/vips/gate.h +55 -47
  78. package/include/vips/generate.h +34 -34
  79. package/include/vips/header.h +111 -101
  80. package/include/vips/histogram.h +28 -28
  81. package/include/vips/image.h +213 -213
  82. package/include/vips/interpolate.h +40 -41
  83. package/include/vips/memory.h +61 -52
  84. package/include/vips/morphology.h +24 -24
  85. package/include/vips/mosaicing.h +32 -33
  86. package/include/vips/object.h +371 -357
  87. package/include/vips/operation.h +68 -67
  88. package/include/vips/private.h +76 -76
  89. package/include/vips/rect.h +26 -26
  90. package/include/vips/region.h +92 -92
  91. package/include/vips/resample.h +38 -38
  92. package/include/vips/sbuf.h +53 -54
  93. package/include/vips/semaphore.h +24 -24
  94. package/include/vips/thread.h +30 -27
  95. package/include/vips/threadpool.h +48 -49
  96. package/include/vips/transform.h +39 -39
  97. package/include/vips/type.h +90 -85
  98. package/include/vips/util.h +274 -229
  99. package/include/vips/vector.h +24 -144
  100. package/include/vips/version.h +9 -9
  101. package/include/vips/vips.h +41 -40
  102. package/package.json +1 -1
  103. package/versions.json +7 -7
@@ -417,19 +417,21 @@ const char *aom_codec_err_to_string(aom_codec_err_t err);
417
417
  * \param[in] ctx Pointer to this instance's context.
418
418
  *
419
419
  */
420
- const char *aom_codec_error(aom_codec_ctx_t *ctx);
420
+ const char *aom_codec_error(const aom_codec_ctx_t *ctx);
421
421
 
422
422
  /*!\brief Retrieve detailed error information for codec context
423
423
  *
424
424
  * Returns a human readable string providing detailed information about
425
- * the last error.
425
+ * the last error. The returned string is only valid until the next
426
+ * aom_codec_* function call (except aom_codec_error and
427
+ * aom_codec_error_detail) on the codec context.
426
428
  *
427
429
  * \param[in] ctx Pointer to this instance's context.
428
430
  *
429
431
  * \retval NULL
430
432
  * No detailed information is available.
431
433
  */
432
- const char *aom_codec_error_detail(aom_codec_ctx_t *ctx);
434
+ const char *aom_codec_error_detail(const aom_codec_ctx_t *ctx);
433
435
 
434
436
  /* REQUIRED FUNCTIONS
435
437
  *
@@ -444,9 +446,11 @@ const char *aom_codec_error_detail(aom_codec_ctx_t *ctx);
444
446
  * \param[in] ctx Pointer to this instance's context
445
447
  *
446
448
  * \retval #AOM_CODEC_OK
447
- * The codec algorithm initialized.
448
- * \retval #AOM_CODEC_MEM_ERROR
449
- * Memory allocation failed.
449
+ * The codec instance has been destroyed.
450
+ * \retval #AOM_CODEC_INVALID_PARAM
451
+ * ctx is a null pointer.
452
+ * \retval #AOM_CODEC_ERROR
453
+ * Codec context not initialized.
450
454
  */
451
455
  aom_codec_err_t aom_codec_destroy(aom_codec_ctx_t *ctx);
452
456
 
@@ -113,7 +113,7 @@ typedef struct aom_codec_dec_cfg {
113
113
  * \param[in] ver ABI version number. Must be set to
114
114
  * AOM_DECODER_ABI_VERSION
115
115
  * \retval #AOM_CODEC_OK
116
- * The decoder algorithm initialized.
116
+ * The decoder algorithm has been initialized.
117
117
  * \retval #AOM_CODEC_MEM_ERROR
118
118
  * Memory allocation failed.
119
119
  */
@@ -903,7 +903,7 @@ typedef struct aom_codec_enc_cfg {
903
903
 
904
904
  /*!\brief Initialize an encoder instance
905
905
  *
906
- * Initializes a encoder context using the given interface. Applications
906
+ * Initializes an encoder context using the given interface. Applications
907
907
  * should call the aom_codec_enc_init convenience macro instead of this
908
908
  * function directly, to ensure that the ABI version number parameter
909
909
  * is properly initialized.
@@ -912,6 +912,9 @@ typedef struct aom_codec_enc_cfg {
912
912
  * is not thread safe and should be guarded with a lock if being used
913
913
  * in a multithreaded context.
914
914
  *
915
+ * If aom_codec_enc_init_ver() fails, it is not necessary to call
916
+ * aom_codec_destroy() on the encoder context.
917
+ *
915
918
  * \param[in] ctx Pointer to this instance's context.
916
919
  * \param[in] iface Pointer to the algorithm interface to use.
917
920
  * \param[in] cfg Configuration to use, if known.
@@ -919,7 +922,7 @@ typedef struct aom_codec_enc_cfg {
919
922
  * \param[in] ver ABI version number. Must be set to
920
923
  * AOM_ENCODER_ABI_VERSION
921
924
  * \retval #AOM_CODEC_OK
922
- * The decoder algorithm initialized.
925
+ * The encoder algorithm has been initialized.
923
926
  * \retval #AOM_CODEC_MEM_ERROR
924
927
  * Memory allocation failed.
925
928
  */
@@ -1024,6 +1027,10 @@ aom_fixed_buf_t *aom_codec_get_global_headers(aom_codec_ctx_t *ctx);
1024
1027
  * \param[in] img Image data to encode, NULL to flush.
1025
1028
  * Encoding sample values outside the range
1026
1029
  * [0..(1<<img->bit_depth)-1] is undefined behavior.
1030
+ * Note: Although img is declared as a const pointer,
1031
+ * if AV1E_SET_DENOISE_NOISE_LEVEL is set to a nonzero
1032
+ * value aom_codec_encode() modifies (denoises) the
1033
+ * samples in img->planes[i] .
1027
1034
  * \param[in] pts Presentation time stamp, in timebase units. If img
1028
1035
  * is NULL, pts is ignored.
1029
1036
  * \param[in] duration Duration to show frame, in timebase units. If img
@@ -1481,6 +1481,52 @@ enum aome_enc_control_id {
1481
1481
  */
1482
1482
  AV1E_ENABLE_SB_QP_SWEEP = 158,
1483
1483
 
1484
+ /*!\brief Codec control to set quantizer for the next frame, int parameter.
1485
+ *
1486
+ * - Valid range [0, 63]
1487
+ *
1488
+ * This will turn off cyclic refresh. Only applicable to 1-pass.
1489
+ */
1490
+ AV1E_SET_QUANTIZER_ONE_PASS = 159,
1491
+
1492
+ /*!\brief Codec control to enable the rate distribution guided delta
1493
+ * quantization in all intra mode, unsigned int parameter
1494
+ *
1495
+ * - 0 = disable (default)
1496
+ * - 1 = enable
1497
+ *
1498
+ * \attention This feature requires --deltaq-mode=3, also an input file
1499
+ * which contains rate distribution for each 16x16 block,
1500
+ * passed in by --rate-distribution-info=rate_distribution.txt.
1501
+ */
1502
+ AV1E_ENABLE_RATE_GUIDE_DELTAQ = 160,
1503
+
1504
+ /*!\brief Codec control to set the input file for rate distribution used
1505
+ * in all intra mode, const char * parameter
1506
+ * The input should be the name of a text file, which
1507
+ * contains (rows x cols) float values separated by space.
1508
+ * Each float value represent the number of bits for each 16x16 block.
1509
+ * rows = (frame_height + 15) / 16
1510
+ * cols = (frame_width + 15) / 16
1511
+ *
1512
+ * \attention This feature requires --enable-rate-guide-deltaq=1.
1513
+ */
1514
+ AV1E_SET_RATE_DISTRIBUTION_INFO = 161,
1515
+
1516
+ /*!\brief Codec control to get the CDEF strength for Y / luma plane,
1517
+ * int * parameter.
1518
+ * Returns an integer array of CDEF_MAX_STRENGTHS elements.
1519
+ */
1520
+ AV1E_GET_LUMA_CDEF_STRENGTH = 162,
1521
+
1522
+ /*!\brief Codec control to set the target bitrate in kilobits per second,
1523
+ * unsigned int parameter. For 1 pass CBR mode, single layer encoding.
1524
+ * This controls replaces the call aom_codec_enc_config_set(&codec, &cfg)
1525
+ * when only target bitrate is changed, and so is much cheaper as it
1526
+ * bypasses a lot of unneeded code checks.
1527
+ */
1528
+ AV1E_SET_BITRATE_ONE_PASS_CBR = 163,
1529
+
1484
1530
  // Any new encoder control IDs should be added above.
1485
1531
  // Maximum allowed encoder control ID is 229.
1486
1532
  // No encoder control ID should be added below.
@@ -1497,7 +1543,9 @@ typedef enum aom_scaling_mode_1d {
1497
1543
  AOME_THREEFOUR = 3,
1498
1544
  AOME_ONEFOUR = 4,
1499
1545
  AOME_ONEEIGHT = 5,
1500
- AOME_ONETWO = 6
1546
+ AOME_ONETWO = 6,
1547
+ AOME_TWOTHREE = 7,
1548
+ AOME_ONETHREE = 8
1501
1549
  } AOM_SCALING_MODE;
1502
1550
 
1503
1551
  /*!\brief Max number of segments
@@ -1579,6 +1627,7 @@ typedef enum {
1579
1627
  AOM_TUNE_VMAF_MAX_GAIN = 6,
1580
1628
  AOM_TUNE_VMAF_NEG_MAX_GAIN = 7,
1581
1629
  AOM_TUNE_BUTTERAUGLI = 8,
1630
+ AOM_TUNE_VMAF_SALIENCY_MAP = 9,
1582
1631
  } aom_tune_metric;
1583
1632
 
1584
1633
  /*!\brief Distortion metric to use for RD optimization.
@@ -1608,7 +1657,12 @@ typedef struct aom_svc_layer_id {
1608
1657
  int temporal_layer_id; /**< Temporal layer ID */
1609
1658
  } aom_svc_layer_id_t;
1610
1659
 
1611
- /*!brief Parameter type for SVC */
1660
+ /*!brief Parameter type for SVC
1661
+ *
1662
+ * In the arrays of size AOM_MAX_LAYERS, the index for spatial layer `sl` and
1663
+ * temporal layer `tl` is sl * number_temporal_layers + tl.
1664
+ *
1665
+ */
1612
1666
  typedef struct aom_svc_params {
1613
1667
  int number_spatial_layers; /**< Number of spatial layers */
1614
1668
  int number_temporal_layers; /**< Number of temporal layers */
@@ -1616,7 +1670,7 @@ typedef struct aom_svc_params {
1616
1670
  int min_quantizers[AOM_MAX_LAYERS]; /**< Min Q for each layer */
1617
1671
  int scaling_factor_num[AOM_MAX_SS_LAYERS]; /**< Scaling factor-numerator */
1618
1672
  int scaling_factor_den[AOM_MAX_SS_LAYERS]; /**< Scaling factor-denominator */
1619
- /*! Target bitrate for each layer */
1673
+ /*! Target bitrate for each layer, in kilobits per second */
1620
1674
  int layer_target_bitrate[AOM_MAX_LAYERS];
1621
1675
  /*! Frame rate factor for each temporal layer */
1622
1676
  int framerate_factor[AOM_MAX_TS_LAYERS];
@@ -2103,6 +2157,21 @@ AOM_CTRL_USE_TYPE(AV1E_SET_SKIP_POSTPROC_FILTERING, unsigned int)
2103
2157
  AOM_CTRL_USE_TYPE(AV1E_ENABLE_SB_QP_SWEEP, unsigned int)
2104
2158
  #define AOM_CTRL_AV1E_ENABLE_SB_QP_SWEEP
2105
2159
 
2160
+ AOM_CTRL_USE_TYPE(AV1E_SET_QUANTIZER_ONE_PASS, int)
2161
+ #define AOM_CTRL_AV1E_SET_QUANTIZER_ONE_PASS
2162
+
2163
+ AOM_CTRL_USE_TYPE(AV1E_ENABLE_RATE_GUIDE_DELTAQ, unsigned int)
2164
+ #define AOM_CTRL_AV1E_ENABLE_RATE_GUIDE_DELTAQ
2165
+
2166
+ AOM_CTRL_USE_TYPE(AV1E_SET_RATE_DISTRIBUTION_INFO, const char *)
2167
+ #define AOM_CTRL_AV1E_SET_RATE_DISTRIBUTION_INFO
2168
+
2169
+ AOM_CTRL_USE_TYPE(AV1E_GET_LUMA_CDEF_STRENGTH, int *)
2170
+ #define AOM_CTRL_AV1E_GET_LUMA_CDEF_STRENGTH
2171
+
2172
+ AOM_CTRL_USE_TYPE(AV1E_SET_BITRATE_ONE_PASS_CBR, unsigned int)
2173
+ #define AOM_CTRL_AV1E_SET_BITRATE_ONE_PASS_CBR
2174
+
2106
2175
  /*!\endcond */
2107
2176
  /*! @} - end defgroup aom_encoder */
2108
2177
  #ifdef __cplusplus
@@ -41,7 +41,7 @@
41
41
 
42
42
  #if CAIRO_HAS_FT_FONT
43
43
 
44
- /* Fontconfig/Freetype platform-specific font interface */
44
+ /* Fontconfig/FreeType platform-specific font interface */
45
45
 
46
46
  #include <ft2build.h>
47
47
  #include FT_FREETYPE_H
@@ -91,6 +91,14 @@ cairo_gobject_rectangle_int_get_type (void);
91
91
  cairo_public GType
92
92
  cairo_gobject_region_get_type (void);
93
93
 
94
+ #define CAIRO_GOBJECT_TYPE_GLYPH cairo_gobject_glyph_get_type ()
95
+ cairo_public GType
96
+ cairo_gobject_glyph_get_type (void);
97
+
98
+ #define CAIRO_GOBJECT_TEXT_CLUSTER_GLYPH cairo_gobject_text_cluster_get_type ()
99
+ cairo_public GType
100
+ cairo_gobject_text_cluster_get_type (void);
101
+
94
102
  /* enums */
95
103
 
96
104
  #define CAIRO_GOBJECT_TYPE_STATUS cairo_gobject_status_get_type ()
@@ -73,9 +73,9 @@ typedef enum _cairo_svg_version {
73
73
  * lengths in the SVG specification.
74
74
  *
75
75
  * See also:
76
- * https://www.w3.org/TR/SVG/coords.html#Units
77
- * https://www.w3.org/TR/SVG/types.html#DataTypeLength
78
- * https://www.w3.org/TR/css-values-3/#lengths
76
+ * - [SVG Units](https://www.w3.org/TR/SVG/coords.html#Units)
77
+ * - [SVG Types](https://www.w3.org/TR/SVG/types.html#DataTypeLength)
78
+ * - [CSS Length](https://www.w3.org/TR/css-values-3/#lengths)
79
79
  *
80
80
  * Since: 1.16
81
81
  **/
@@ -2,7 +2,7 @@
2
2
  #define CAIRO_VERSION_H
3
3
 
4
4
  #define CAIRO_VERSION_MAJOR 1
5
- #define CAIRO_VERSION_MINOR 17
6
- #define CAIRO_VERSION_MICRO 8
5
+ #define CAIRO_VERSION_MINOR 18
6
+ #define CAIRO_VERSION_MICRO 0
7
7
 
8
8
  #endif
@@ -50,14 +50,25 @@
50
50
  # define CAIRO_END_DECLS
51
51
  #endif
52
52
 
53
- #ifndef cairo_public
54
- # if defined (_MSC_VER) && ! defined (CAIRO_WIN32_STATIC_BUILD)
55
- # define cairo_public __declspec(dllimport)
56
- # else
57
- # define cairo_public
58
- # endif
53
+ #if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(CAIRO_WIN32_STATIC_BUILD)
54
+ # define _cairo_export __declspec(dllexport)
55
+ # define _cairo_import __declspec(dllimport)
56
+ #elif defined(__GNUC__) && (__GNUC__ >= 4)
57
+ # define _cairo_export __attribute__((__visibility__("default")))
58
+ # define _cairo_import
59
+ #else
60
+ # define _cairo_export
61
+ # define _cairo_import
59
62
  #endif
60
63
 
64
+ #ifdef CAIRO_COMPILATION
65
+ # define _cairo_api _cairo_export
66
+ #else
67
+ # define _cairo_api _cairo_import
68
+ #endif
69
+
70
+ #define cairo_public _cairo_api extern
71
+
61
72
  CAIRO_BEGIN_DECLS
62
73
 
63
74
  #define CAIRO_VERSION_ENCODE(major, minor, micro) ( \
@@ -295,6 +306,7 @@ typedef struct _cairo_user_data_key {
295
306
  * @CAIRO_STATUS_WIN32_GDI_ERROR: error occurred in the Windows Graphics Device Interface (Since 1.16)
296
307
  * @CAIRO_STATUS_TAG_ERROR: invalid tag name, attributes, or nesting (Since 1.16)
297
308
  * @CAIRO_STATUS_DWRITE_ERROR: error occurred in the Windows Direct Write API (Since 1.18)
309
+ * @CAIRO_STATUS_SVG_FONT_ERROR: error occurred in OpenType-SVG font rendering (Since 1.18)
298
310
  * @CAIRO_STATUS_LAST_STATUS: this is a special value indicating the number of
299
311
  * status values defined in this enumeration. When using this value, note
300
312
  * that the version of cairo at run-time may have additional status values
@@ -428,6 +440,38 @@ typedef enum _cairo_format {
428
440
  CAIRO_FORMAT_RGBA128F = 7
429
441
  } cairo_format_t;
430
442
 
443
+ /**
444
+ * cairo_dither_t:
445
+ * @CAIRO_DITHER_NONE: No dithering.
446
+ * @CAIRO_DITHER_DEFAULT: Default choice at cairo compile time. Currently NONE.
447
+ * @CAIRO_DITHER_FAST: Fastest dithering algorithm supported by the backend
448
+ * @CAIRO_DITHER_GOOD: An algorithm with smoother dithering than FAST
449
+ * @CAIRO_DITHER_BEST: Best algorithm available in the backend
450
+ *
451
+ * Dither is an intentionally applied form of noise used to randomize
452
+ * quantization error, preventing large-scale patterns such as color banding
453
+ * in images (e.g. for gradients). Ordered dithering applies a precomputed
454
+ * threshold matrix to spread the errors smoothly.
455
+ *
456
+ * #cairo_dither_t is modeled on pixman dithering algorithm choice.
457
+ * As of Pixman 0.40, FAST corresponds to a 8x8 ordered bayer noise and GOOD
458
+ * and BEST use an ordered 64x64 precomputed blue noise.
459
+ *
460
+ * Since: 1.18
461
+ **/
462
+ typedef enum _cairo_dither {
463
+ CAIRO_DITHER_NONE,
464
+ CAIRO_DITHER_DEFAULT,
465
+ CAIRO_DITHER_FAST,
466
+ CAIRO_DITHER_GOOD,
467
+ CAIRO_DITHER_BEST
468
+ } cairo_dither_t;
469
+
470
+ cairo_public void
471
+ cairo_pattern_set_dither (cairo_pattern_t *pattern, cairo_dither_t dither);
472
+
473
+ cairo_public cairo_dither_t
474
+ cairo_pattern_get_dither (cairo_pattern_t *pattern);
431
475
 
432
476
  /**
433
477
  * cairo_write_func_t:
@@ -1038,6 +1082,8 @@ cairo_rectangle_list_destroy (cairo_rectangle_list_t *rectangle_list);
1038
1082
 
1039
1083
  #define CAIRO_TAG_DEST "cairo.dest"
1040
1084
  #define CAIRO_TAG_LINK "Link"
1085
+ #define CAIRO_TAG_CONTENT "cairo.content"
1086
+ #define CAIRO_TAG_CONTENT_REF "cairo.content_ref"
1041
1087
 
1042
1088
  cairo_public void
1043
1089
  cairo_tag_begin (cairo_t *cr, const char *tag_name, const char *attributes);
@@ -2354,6 +2400,16 @@ cairo_public cairo_surface_t *
2354
2400
  cairo_surface_create_observer (cairo_surface_t *target,
2355
2401
  cairo_surface_observer_mode_t mode);
2356
2402
 
2403
+ /**
2404
+ * cairo_surface_observer_callback_t:
2405
+ * @observer: the #cairo_surface_observer_t
2406
+ * @target: the observed surface
2407
+ * @data: closure used when adding the callback
2408
+ *
2409
+ * A generic callback function for surface operations.
2410
+ *
2411
+ * Since: 1.12
2412
+ **/
2357
2413
  typedef void (*cairo_surface_observer_callback_t) (cairo_surface_t *observer,
2358
2414
  cairo_surface_t *target,
2359
2415
  void *data);
@@ -2394,34 +2450,34 @@ cairo_surface_observer_add_finish_callback (cairo_surface_t *abstract_surface,
2394
2450
  void *data);
2395
2451
 
2396
2452
  cairo_public cairo_status_t
2397
- cairo_surface_observer_print (cairo_surface_t *surface,
2453
+ cairo_surface_observer_print (cairo_surface_t *abstract_surface,
2398
2454
  cairo_write_func_t write_func,
2399
2455
  void *closure);
2400
2456
  cairo_public double
2401
- cairo_surface_observer_elapsed (cairo_surface_t *surface);
2457
+ cairo_surface_observer_elapsed (cairo_surface_t *abstract_surface);
2402
2458
 
2403
2459
  cairo_public cairo_status_t
2404
- cairo_device_observer_print (cairo_device_t *device,
2460
+ cairo_device_observer_print (cairo_device_t *abstract_device,
2405
2461
  cairo_write_func_t write_func,
2406
2462
  void *closure);
2407
2463
 
2408
2464
  cairo_public double
2409
- cairo_device_observer_elapsed (cairo_device_t *device);
2465
+ cairo_device_observer_elapsed (cairo_device_t *abstract_device);
2410
2466
 
2411
2467
  cairo_public double
2412
- cairo_device_observer_paint_elapsed (cairo_device_t *device);
2468
+ cairo_device_observer_paint_elapsed (cairo_device_t *abstract_device);
2413
2469
 
2414
2470
  cairo_public double
2415
- cairo_device_observer_mask_elapsed (cairo_device_t *device);
2471
+ cairo_device_observer_mask_elapsed (cairo_device_t *abstract_device);
2416
2472
 
2417
2473
  cairo_public double
2418
- cairo_device_observer_fill_elapsed (cairo_device_t *device);
2474
+ cairo_device_observer_fill_elapsed (cairo_device_t *abstract_device);
2419
2475
 
2420
2476
  cairo_public double
2421
- cairo_device_observer_stroke_elapsed (cairo_device_t *device);
2477
+ cairo_device_observer_stroke_elapsed (cairo_device_t *abstract_device);
2422
2478
 
2423
2479
  cairo_public double
2424
- cairo_device_observer_glyphs_elapsed (cairo_device_t *device);
2480
+ cairo_device_observer_glyphs_elapsed (cairo_device_t *abstract_device);
2425
2481
 
2426
2482
  cairo_public cairo_surface_t *
2427
2483
  cairo_surface_reference (cairo_surface_t *surface);
@@ -2448,26 +2504,37 @@ cairo_surface_status (cairo_surface_t *surface);
2448
2504
  * @CAIRO_SURFACE_TYPE_PS: The surface is of type ps, since 1.2
2449
2505
  * @CAIRO_SURFACE_TYPE_XLIB: The surface is of type xlib, since 1.2
2450
2506
  * @CAIRO_SURFACE_TYPE_XCB: The surface is of type xcb, since 1.2
2451
- * @CAIRO_SURFACE_TYPE_GLITZ: The surface is of type glitz, since 1.2
2507
+ * @CAIRO_SURFACE_TYPE_GLITZ: The surface is of type glitz, since 1.2, deprecated 1.18
2508
+ * (glitz support have been removed, this surface type will never be set by cairo)
2452
2509
  * @CAIRO_SURFACE_TYPE_QUARTZ: The surface is of type quartz, since 1.2
2453
2510
  * @CAIRO_SURFACE_TYPE_WIN32: The surface is of type win32, since 1.2
2454
- * @CAIRO_SURFACE_TYPE_BEOS: The surface is of type beos, since 1.2
2455
- * @CAIRO_SURFACE_TYPE_DIRECTFB: The surface is of type directfb, since 1.2
2511
+ * @CAIRO_SURFACE_TYPE_BEOS: The surface is of type beos, since 1.2, deprecated 1.18
2512
+ * (beos support have been removed, this surface type will never be set by cairo)
2513
+ * @CAIRO_SURFACE_TYPE_DIRECTFB: The surface is of type directfb, since 1.2, deprecated 1.18
2514
+ * (directfb support have been removed, this surface type will never be set by cairo)
2456
2515
  * @CAIRO_SURFACE_TYPE_SVG: The surface is of type svg, since 1.2
2457
- * @CAIRO_SURFACE_TYPE_OS2: The surface is of type os2, since 1.4
2516
+ * @CAIRO_SURFACE_TYPE_OS2: The surface is of type os2, since 1.4, deprecated 1.18
2517
+ * (os2 support have been removed, this surface type will never be set by cairo)
2458
2518
  * @CAIRO_SURFACE_TYPE_WIN32_PRINTING: The surface is a win32 printing surface, since 1.6
2459
2519
  * @CAIRO_SURFACE_TYPE_QUARTZ_IMAGE: The surface is of type quartz_image, since 1.6
2460
2520
  * @CAIRO_SURFACE_TYPE_SCRIPT: The surface is of type script, since 1.10
2461
- * @CAIRO_SURFACE_TYPE_QT: The surface is of type Qt, since 1.10
2521
+ * @CAIRO_SURFACE_TYPE_QT: The surface is of type Qt, since 1.10, deprecated 1.18
2522
+ * (Ot support have been removed, this surface type will never be set by cairo)
2462
2523
  * @CAIRO_SURFACE_TYPE_RECORDING: The surface is of type recording, since 1.10
2463
- * @CAIRO_SURFACE_TYPE_VG: The surface is a OpenVG surface, since 1.10
2464
- * @CAIRO_SURFACE_TYPE_GL: The surface is of type OpenGL, since 1.10
2465
- * @CAIRO_SURFACE_TYPE_DRM: The surface is of type Direct Render Manager, since 1.10
2524
+ * @CAIRO_SURFACE_TYPE_VG: The surface is a OpenVG surface, since 1.10, deprecated 1.18
2525
+ * (OpenVG support have been removed, this surface type will never be set by cairo)
2526
+ * @CAIRO_SURFACE_TYPE_GL: The surface is of type OpenGL, since 1.10, deprecated 1.18
2527
+ * (OpenGL support have been removed, this surface type will never be set by cairo)
2528
+ * @CAIRO_SURFACE_TYPE_DRM: The surface is of type Direct Render Manager, since 1.10, deprecated 1.18
2529
+ * (DRM support have been removed, this surface type will never be set by cairo)
2466
2530
  * @CAIRO_SURFACE_TYPE_TEE: The surface is of type 'tee' (a multiplexing surface), since 1.10
2467
2531
  * @CAIRO_SURFACE_TYPE_XML: The surface is of type XML (for debugging), since 1.10
2532
+ * @CAIRO_SURFACE_TYPE_SKIA: The surface is of type Skia, since 1.10, deprecated 1.18
2533
+ * (Skia support have been removed, this surface type will never be set by cairo)
2468
2534
  * @CAIRO_SURFACE_TYPE_SUBSURFACE: The surface is a subsurface created with
2469
2535
  * cairo_surface_create_for_rectangle(), since 1.10
2470
- * @CAIRO_SURFACE_TYPE_COGL: This surface is of type Cogl, since 1.12
2536
+ * @CAIRO_SURFACE_TYPE_COGL: This surface is of type Cogl, since 1.12, deprecated 1.18
2537
+ * (Cogl support have been removed, this surface type will never be set by cairo)
2471
2538
  *
2472
2539
  * #cairo_surface_type_t is used to describe the type of a given
2473
2540
  * surface. The surface types are also known as "backends" or "surface
@@ -53,14 +53,14 @@ HB_BEGIN_DECLS
53
53
  *
54
54
  * The micro component of the library version available at compile-time.
55
55
  */
56
- #define HB_VERSION_MICRO 0
56
+ #define HB_VERSION_MICRO 2
57
57
 
58
58
  /**
59
59
  * HB_VERSION_STRING:
60
60
  *
61
61
  * A string literal containing the library version available at compile-time.
62
62
  */
63
- #define HB_VERSION_STRING "8.2.0"
63
+ #define HB_VERSION_STRING "8.2.2"
64
64
 
65
65
  /**
66
66
  * HB_VERSION_ATLEAST: