arithmetic.h   arithmetic.h 
skipping to change at line 101 skipping to change at line 101
typedef enum { typedef enum {
VIPS_OPERATION_ROUND_RINT, VIPS_OPERATION_ROUND_RINT,
VIPS_OPERATION_ROUND_CEIL, VIPS_OPERATION_ROUND_CEIL,
VIPS_OPERATION_ROUND_FLOOR, VIPS_OPERATION_ROUND_FLOOR,
VIPS_OPERATION_ROUND_LAST VIPS_OPERATION_ROUND_LAST
} VipsOperationRound; } VipsOperationRound;
/** /**
* VipsOperationRelational: * VipsOperationRelational:
* @VIPS_OPERATION_RELATIONAL_EQUAL: == * @VIPS_OPERATION_RELATIONAL_EQUAL: ==
* @VIPS_OPERATION_RELATIONAL_NOTEQUAL: != * @VIPS_OPERATION_RELATIONAL_NOTEQ: !=
* @VIPS_OPERATION_RELATIONAL_LESS: < * @VIPS_OPERATION_RELATIONAL_LESS: <
* @VIPS_OPERATION_RELATIONAL_LESSEQ: <= * @VIPS_OPERATION_RELATIONAL_LESSEQ: <=
* @VIPS_OPERATION_RELATIONAL_MORE: > * @VIPS_OPERATION_RELATIONAL_MORE: >
* @VIPS_OPERATION_RELATIONAL_MOREEQ: >= * @VIPS_OPERATION_RELATIONAL_MOREEQ: >=
* *
* See also: vips_relational(). * See also: vips_relational().
*/ */
typedef enum { typedef enum {
VIPS_OPERATION_RELATIONAL_EQUAL, VIPS_OPERATION_RELATIONAL_EQUAL,
VIPS_OPERATION_RELATIONAL_NOTEQUAL, VIPS_OPERATION_RELATIONAL_NOTEQ,
VIPS_OPERATION_RELATIONAL_LESS, VIPS_OPERATION_RELATIONAL_LESS,
VIPS_OPERATION_RELATIONAL_LESSEQ, VIPS_OPERATION_RELATIONAL_LESSEQ,
VIPS_OPERATION_RELATIONAL_MORE, VIPS_OPERATION_RELATIONAL_MORE,
VIPS_OPERATION_RELATIONAL_MOREEQ, VIPS_OPERATION_RELATIONAL_MOREEQ,
VIPS_OPERATION_RELATIONAL_LAST VIPS_OPERATION_RELATIONAL_LAST
} VipsOperationRelational; } VipsOperationRelational;
/** /**
* VipsOperationBoolean: * VipsOperationBoolean:
* @VIPS_OPERATION_BOOLEAN_AND: & * @VIPS_OPERATION_BOOLEAN_AND: &
* @VIPS_OPERATION_BOOLEAN_OR: | * @VIPS_OPERATION_BOOLEAN_OR: |
* @VIPS_OPERATION_BOOLEAN_EOR: ^ * @VIPS_OPERATION_BOOLEAN_EOR: ^
* @VIPS_OPERATION_BOOLEAN_LSHIFT: >>
* @VIPS_OPERATION_BOOLEAN_RSHIFT: <<
* *
* See also: vips_boolean(). * See also: vips_boolean().
*/ */
typedef enum { typedef enum {
VIPS_OPERATION_BOOLEAN_AND, VIPS_OPERATION_BOOLEAN_AND,
VIPS_OPERATION_BOOLEAN_OR, VIPS_OPERATION_BOOLEAN_OR,
VIPS_OPERATION_BOOLEAN_EOR, VIPS_OPERATION_BOOLEAN_EOR,
VIPS_OPERATION_BOOLEAN_LSHIFT, VIPS_OPERATION_BOOLEAN_LSHIFT,
VIPS_OPERATION_BOOLEAN_RSHIFT, VIPS_OPERATION_BOOLEAN_RSHIFT,
VIPS_OPERATION_BOOLEAN_LAST VIPS_OPERATION_BOOLEAN_LAST
skipping to change at line 337 skipping to change at line 339
int vips_andimage_const( VipsImage *in, VipsImage **out, double *c, int n, ... ) int vips_andimage_const( VipsImage *in, VipsImage **out, double *c, int n, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_orimage_const( VipsImage *in, VipsImage **out, double *c, int n, . .. ) int vips_orimage_const( VipsImage *in, VipsImage **out, double *c, int n, . .. )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_eorimage_const( VipsImage *in, VipsImage **out, double *c, int n, ... ) int vips_eorimage_const( VipsImage *in, VipsImage **out, double *c, int n, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_lshift_const( VipsImage *in, VipsImage **out, double *c, int n, .. . ) int vips_lshift_const( VipsImage *in, VipsImage **out, double *c, int n, .. . )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_rshift_const( VipsImage *in, VipsImage **out, double *c, int n, .. . ) int vips_rshift_const( VipsImage *in, VipsImage **out, double *c, int n, .. . )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_boolean_const1( VipsImage *in, VipsImage **out,
VipsOperationBoolean boolean, double c, ... )
__attribute__((sentinel));
int vips_andimage_const1( VipsImage *in, VipsImage **out, double c, ... ) int vips_andimage_const1( VipsImage *in, VipsImage **out, double c, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_orimage_const1( VipsImage *in, VipsImage **out, double c, ... ) int vips_orimage_const1( VipsImage *in, VipsImage **out, double c, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_eorimage_const1( VipsImage *in, VipsImage **out, double c, ... ) int vips_eorimage_const1( VipsImage *in, VipsImage **out, double c, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_lshift_const1( VipsImage *in, VipsImage **out, double c, ... ) int vips_lshift_const1( VipsImage *in, VipsImage **out, double c, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_rshift_const1( VipsImage *in, VipsImage **out, double c, ... ) int vips_rshift_const1( VipsImage *in, VipsImage **out, double c, ... )
__attribute__((sentinel)); __attribute__((sentinel));
 End of changes. 4 change blocks. 
2 lines changed or deleted 7 lines changed or added


 basic.h   basic.h 
skipping to change at line 55 skipping to change at line 55
* to get the value. * to get the value.
*/ */
typedef unsigned char VipsPel; typedef unsigned char VipsPel;
/* Also used for eg. vips_local() and friends. /* Also used for eg. vips_local() and friends.
*/ */
typedef int (*VipsCallbackFn)( void *a, void *b ); typedef int (*VipsCallbackFn)( void *a, void *b );
/* Like GFunc, but return a value. /* Like GFunc, but return a value.
*/ */
typedef void *(*VipsSListMap2Fn)( void *, void *, void * ); typedef void *(*VipsSListMap2Fn)( void *item,
typedef void *(*VipsSListMap4Fn)( void *, void *, void *, void *, void * ); void *a, void *b );
typedef void *(*VipsSListFold2Fn)( void *, void *, void *, void * ); typedef void *(*VipsSListMap4Fn)( void *item,
void *a, void *b, void *c, void *d );
typedef void *(*VipsSListFold2Fn)( void *item,
void *a, void *b, void *c );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_BASIC_H*/ #endif /*VIPS_BASIC_H*/
 End of changes. 1 change blocks. 
3 lines changed or deleted 6 lines changed or added


 cimg_funcs.h   cimg_funcs.h 
skipping to change at line 43 skipping to change at line 43
#ifndef IM_CIMG_FUNCS_H #ifndef IM_CIMG_FUNCS_H
#define IM_CIMG_FUNCS_H #define IM_CIMG_FUNCS_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#include <vips/vips.h> #include <vips/vips.h>
int im_greyc_mask( VipsImage *in, VipsImage *out, VipsImage *mask, int vips_gmic( VipsImage **in, VipsImage **out, int n,
int iterations, float amplitude, float sharpness, float anisotropy, int padding, double x_scale, double y_scale, const char *command, ..
float alpha, float sigma, float dl, float da, float gauss_prec, . )
int interpolation, int fast_approx ); __attribute__((sentinel));
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_CIMG_FUNCS_H*/ #endif /*IM_CIMG_FUNCS_H*/
 End of changes. 1 change blocks. 
4 lines changed or deleted 4 lines changed or added


 conversion.h   conversion.h 
skipping to change at line 65 skipping to change at line 65
} VipsDirection; } VipsDirection;
typedef enum { typedef enum {
VIPS_ALIGN_LOW, VIPS_ALIGN_LOW,
VIPS_ALIGN_CENTRE, VIPS_ALIGN_CENTRE,
VIPS_ALIGN_HIGH, VIPS_ALIGN_HIGH,
VIPS_ALIGN_LAST VIPS_ALIGN_LAST
} VipsAlign; } VipsAlign;
typedef enum { typedef enum {
VIPS_ANGLE_0, VIPS_ANGLE_D0,
VIPS_ANGLE_90, VIPS_ANGLE_D90,
VIPS_ANGLE_180, VIPS_ANGLE_D180,
VIPS_ANGLE_270, VIPS_ANGLE_D270,
VIPS_ANGLE_LAST VIPS_ANGLE_LAST
} VipsAngle; } VipsAngle;
typedef enum { typedef enum {
VIPS_ANGLE45_0, VIPS_ANGLE45_D0,
VIPS_ANGLE45_45, VIPS_ANGLE45_D45,
VIPS_ANGLE45_90, VIPS_ANGLE45_D90,
VIPS_ANGLE45_135, VIPS_ANGLE45_D135,
VIPS_ANGLE45_180, VIPS_ANGLE45_D180,
VIPS_ANGLE45_225, VIPS_ANGLE45_D225,
VIPS_ANGLE45_270, VIPS_ANGLE45_D270,
VIPS_ANGLE45_315, VIPS_ANGLE45_D315,
VIPS_ANGLE45_LAST VIPS_ANGLE45_LAST
} VipsAngle45; } VipsAngle45;
int vips_copy( VipsImage *in, VipsImage **out, ... ) int vips_copy( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_tilecache( VipsImage *in, VipsImage **out, ... ) int vips_tilecache( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_linecache( VipsImage *in, VipsImage **out, ... ) int vips_linecache( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_sequential( VipsImage *in, VipsImage **out, ... ) int vips_sequential( VipsImage *in, VipsImage **out, ... )
skipping to change at line 105 skipping to change at line 105
__attribute__((sentinel)); __attribute__((sentinel));
int vips_embed( VipsImage *in, VipsImage **out, int vips_embed( VipsImage *in, VipsImage **out,
int x, int y, int width, int height, ... ) int x, int y, int width, int height, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_flip( VipsImage *in, VipsImage **out, VipsDirection direction, ... ) int vips_flip( VipsImage *in, VipsImage **out, VipsDirection direction, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_insert( VipsImage *main, VipsImage *sub, VipsImage **out, int vips_insert( VipsImage *main, VipsImage *sub, VipsImage **out,
int x, int y, ... ) int x, int y, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_join( VipsImage *main, VipsImage *sub, VipsImage **out, int vips_join( VipsImage *in1, VipsImage *in2, VipsImage **out,
VipsDirection direction, ... ) VipsDirection direction, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_extract_area( VipsImage *input, VipsImage **output, int vips_extract_area( VipsImage *in, VipsImage **out,
int left, int top, int width, int height, ... ) int left, int top, int width, int height, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_crop( VipsImage *input, VipsImage **output, int vips_crop( VipsImage *in, VipsImage **out,
int left, int top, int width, int height, ... ) int left, int top, int width, int height, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_extract_band( VipsImage *input, VipsImage **output, int band, ... ) int vips_extract_band( VipsImage *in, VipsImage **out, int band, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_replicate( VipsImage *in, VipsImage **out, int across, int down, . .. ) int vips_replicate( VipsImage *in, VipsImage **out, int across, int down, . .. )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_grid( VipsImage *in, VipsImage **out, int vips_grid( VipsImage *in, VipsImage **out,
int tile_height, int across, int down, ... ) int tile_height, int across, int down, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_wrap( VipsImage *in, VipsImage **out, ... ) int vips_wrap( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_rot( VipsImage *in, VipsImage **out, VipsAngle angle, ... ) int vips_rot( VipsImage *in, VipsImage **out, VipsAngle angle, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_rot45( VipsImage *in, VipsImage **out, ... ) int vips_rot45( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
VipsAngle vips_autorot_get_angle( VipsImage *im );
int vips_autorot( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_zoom( VipsImage *in, VipsImage **out, int xfac, int yfac, ... ) int vips_zoom( VipsImage *in, VipsImage **out, int xfac, int yfac, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_subsample( VipsImage *in, VipsImage **out, int xfac, int yfac, ... ) int vips_subsample( VipsImage *in, VipsImage **out, int xfac, int yfac, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_cast( VipsImage *in, VipsImage **out, VipsBandFormat format, ... ) int vips_cast( VipsImage *in, VipsImage **out, VipsBandFormat format, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_cast_uchar( VipsImage *in, VipsImage **out, ... ) int vips_cast_uchar( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_cast_char( VipsImage *in, VipsImage **out, ... ) int vips_cast_char( VipsImage *in, VipsImage **out, ... )
skipping to change at line 167 skipping to change at line 170
__attribute__((sentinel)); __attribute__((sentinel));
int vips_bandjoin( VipsImage **in, VipsImage **out, int n, ... ) int vips_bandjoin( VipsImage **in, VipsImage **out, int n, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_bandjoin2( VipsImage *in1, VipsImage *in2, VipsImage **out, ... ) int vips_bandjoin2( VipsImage *in1, VipsImage *in2, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_bandrank( VipsImage **in, VipsImage **out, int n, ... ) int vips_bandrank( VipsImage **in, VipsImage **out, int n, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_bandbool( VipsImage *in, VipsImage **out, int vips_bandbool( VipsImage *in, VipsImage **out,
VipsOperationBoolean operation, ... ) VipsOperationBoolean boolean, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_bandand( VipsImage *in, VipsImage **out, ... ) int vips_bandand( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_bandor( VipsImage *in, VipsImage **out, ... ) int vips_bandor( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_bandeor( VipsImage *in, VipsImage **out, ... ) int vips_bandeor( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_bandmean( VipsImage *in, VipsImage **out, ... ) int vips_bandmean( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
skipping to change at line 192 skipping to change at line 195
VipsImage **out, ... ) VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_flatten( VipsImage *in, VipsImage **out, ... ) int vips_flatten( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_falsecolour( VipsImage *in, VipsImage **out, ... ) int vips_falsecolour( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_gamma( VipsImage *in, VipsImage **out, ... ) int vips_gamma( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int im_insertset( VipsImage *main, VipsImage *sub, VipsImage *out, int n, i
nt *x, int *y );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_CONVERSION_H*/ #endif /*VIPS_CONVERSION_H*/
 End of changes. 9 change blocks. 
20 lines changed or deleted 20 lines changed or added


 convolution.h   convolution.h 
skipping to change at line 63 skipping to change at line 63
int vips_conv( VipsImage *in, VipsImage **out, VipsImage *mask, ... ) int vips_conv( VipsImage *in, VipsImage **out, VipsImage *mask, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_compass( VipsImage *in, VipsImage **out, VipsImage *mask, ... ) int vips_compass( VipsImage *in, VipsImage **out, VipsImage *mask, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_convsep( VipsImage *in, VipsImage **out, VipsImage *mask, ... ) int vips_convsep( VipsImage *in, VipsImage **out, VipsImage *mask, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_sharpen( VipsImage *in, VipsImage **out, ... ) int vips_sharpen( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_gaussblur( VipsImage *in, VipsImage **out, int radius, ... ) int vips_gaussblur( VipsImage *in, VipsImage **out, double sigma, ... )
__attribute__((sentinel));
int vips_spcor( VipsImage *in, VipsImage *ref, VipsImage **out, ... )
__attribute__((sentinel));
int vips_fastcor( VipsImage *in, VipsImage *ref, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_CONVOLUTION_H*/ #endif /*IM_CONVOLUTION_H*/
 End of changes. 1 change blocks. 
1 lines changed or deleted 6 lines changed or added


 create.h   create.h 
skipping to change at line 81 skipping to change at line 81
int vips_tonelut( VipsImage **out, ... ) int vips_tonelut( VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_mask_ideal( VipsImage **out, int width, int height, int vips_mask_ideal( VipsImage **out, int width, int height,
double frequency_cutoff, ... ) double frequency_cutoff, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_mask_ideal_ring( VipsImage **out, int width, int height, int vips_mask_ideal_ring( VipsImage **out, int width, int height,
double frequency_cutoff, double ringwidth, ... ) double frequency_cutoff, double ringwidth, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_mask_ideal_band( VipsImage **out, int width, int height, int vips_mask_ideal_band( VipsImage **out, int width, int height,
double frequency_cutoff_x, double frequency_cutoff_y, double r, ... double frequency_cutoff_x, double frequency_cutoff_y,
) double radius, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_mask_butterworth( VipsImage **out, int width, int height, int vips_mask_butterworth( VipsImage **out, int width, int height,
double order, double order,
double frequency_cutoff, double amplitude_cutoff, ... ) double frequency_cutoff, double amplitude_cutoff, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_mask_butterworth_ring( VipsImage **out, int width, int height, int vips_mask_butterworth_ring( VipsImage **out, int width, int height,
double order, double order,
double frequency_cutoff, double amplitude_cutoff, double frequency_cutoff, double amplitude_cutoff,
double ringwidth, ... ) double ringwidth, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_mask_butterworth_band( VipsImage **out, int width, int height, int vips_mask_butterworth_band( VipsImage **out, int width, int height,
double order, double order,
double frequency_cutoff_x, double frequency_cutoff_y, double r, double frequency_cutoff_x, double frequency_cutoff_y, double radius,
double amplitude_cutoff, ... ) double amplitude_cutoff, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_mask_gaussian( VipsImage **out, int width, int height, int vips_mask_gaussian( VipsImage **out, int width, int height,
double frequency_cutoff, double amplitude_cutoff, ... ) double frequency_cutoff, double amplitude_cutoff, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_mask_gaussian_ring( VipsImage **out, int width, int height, int vips_mask_gaussian_ring( VipsImage **out, int width, int height,
double frequency_cutoff, double amplitude_cutoff, double frequency_cutoff, double amplitude_cutoff,
double ringwidth, ... ) double ringwidth, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_mask_gaussian_band( VipsImage **out, int width, int height, int vips_mask_gaussian_band( VipsImage **out, int width, int height,
double frequency_cutoff_x, double frequency_cutoff_y, double r, double frequency_cutoff_x, double frequency_cutoff_y, double radius,
double amplitude_cutoff, ... ) double amplitude_cutoff, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_mask_fractal( VipsImage **out, int width, int height, int vips_mask_fractal( VipsImage **out, int width, int height,
double fractal_dimension, ... ) double fractal_dimension, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_fractsurf( VipsImage **out, int vips_fractsurf( VipsImage **out,
int width, int height, double fractal_dimension, ... ) int width, int height, double fractal_dimension, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int im_benchmarkn( VipsImage *in, VipsImage *out, int n );
int im_benchmark2( VipsImage *in, double *out );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_CREATE_H*/ #endif /*VIPS_CREATE_H*/
 End of changes. 4 change blocks. 
7 lines changed or deleted 4 lines changed or added


 dispatch.h   dispatch.h 
skipping to change at line 295 skipping to change at line 295
/* Allocate space for, and free im_object argument lists. /* Allocate space for, and free im_object argument lists.
*/ */
int im_free_vargv( im_function *fn, im_object *vargv ); int im_free_vargv( im_function *fn, im_object *vargv );
int im_allocate_vargv( im_function *fn, im_object *vargv ); int im_allocate_vargv( im_function *fn, im_object *vargv );
/* Run a VIPS command by name. /* Run a VIPS command by name.
*/ */
int im_run_command( char *name, int argc, char **argv ); int im_run_command( char *name, int argc, char **argv );
int vips__input_interpolate_init( im_object *obj, char *str );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_DISPATCH_H*/ #endif /*IM_DISPATCH_H*/
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 draw.h   draw.h 
skipping to change at line 81 skipping to change at line 81
int vips_draw_line1( VipsImage *image, int vips_draw_line1( VipsImage *image,
double ink, int x1, int y1, int x2, int y2, ... ) double ink, int x1, int y1, int x2, int y2, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_draw_line_mask( VipsImage *image, int vips_draw_line_mask( VipsImage *image,
double *ink, int n, int x1, int y1, int x2, int y2, double *ink, int n, int x1, int y1, int x2, int y2,
VipsImage *mask, ... ) VipsImage *mask, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_draw_line_mask1( VipsImage *image, int vips_draw_line_mask1( VipsImage *image,
double ink, int x1, int y1, int x2, int y2, VipsImage *mask, ... ) double ink, int x1, int y1, int x2, int y2, VipsImage *mask, ... )
__attribute__((sentinel)); __attribute__((sentinel));
typedef int (*VipsPlotFn)( VipsImage *, int, int, void *, void *, void * );
int vips_draw_line_user( VipsImage *image,
int x1, int y1, int x2, int y2,
VipsPlotFn plot_fn, void *a, void *b, void *c, ... )
__attribute__((sentinel));
int vips_draw_circle( VipsImage *image, int vips_draw_circle( VipsImage *image,
double *ink, int n, int cx, int cy, int radius, ... ) double *ink, int n, int cx, int cy, int radius, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_draw_circle1( VipsImage *image, int vips_draw_circle1( VipsImage *image,
double ink, int cx, int cy, int radius, ... ) double ink, int cx, int cy, int radius, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_draw_flood( VipsImage *image, double *ink, int n, int x, int y, .. . ) int vips_draw_flood( VipsImage *image, double *ink, int n, int x, int y, .. . )
__attribute__((sentinel)); __attribute__((sentinel));
 End of changes. 1 change blocks. 
5 lines changed or deleted 0 lines changed or added


 enumtypes.h   enumtypes.h 
skipping to change at line 20 skipping to change at line 20
GType vips_foreign_flags_get_type (void) G_GNUC_CONST; GType vips_foreign_flags_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_FOREIGN_FLAGS (vips_foreign_flags_get_type()) #define VIPS_TYPE_FOREIGN_FLAGS (vips_foreign_flags_get_type())
GType vips_saveable_get_type (void) G_GNUC_CONST; GType vips_saveable_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_SAVEABLE (vips_saveable_get_type()) #define VIPS_TYPE_SAVEABLE (vips_saveable_get_type())
GType vips_foreign_tiff_compression_get_type (void) G_GNUC_CONST; GType vips_foreign_tiff_compression_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_FOREIGN_TIFF_COMPRESSION (vips_foreign_tiff_compression_g et_type()) #define VIPS_TYPE_FOREIGN_TIFF_COMPRESSION (vips_foreign_tiff_compression_g et_type())
GType vips_foreign_tiff_predictor_get_type (void) G_GNUC_CONST; GType vips_foreign_tiff_predictor_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_FOREIGN_TIFF_PREDICTOR (vips_foreign_tiff_predictor_get_t ype()) #define VIPS_TYPE_FOREIGN_TIFF_PREDICTOR (vips_foreign_tiff_predictor_get_t ype())
GType vips_foreign_tiff_resunit_get_type (void) G_GNUC_CONST; GType vips_foreign_tiff_resunit_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_FOREIGN_TIFF_RESUNIT (vips_foreign_tiff_resunit_get_type( )) #define VIPS_TYPE_FOREIGN_TIFF_RESUNIT (vips_foreign_tiff_resunit_get_type( ))
GType vips_foreign_png_filter_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_FOREIGN_PNG_FILTER (vips_foreign_png_filter_get_type())
GType vips_foreign_dz_layout_get_type (void) G_GNUC_CONST; GType vips_foreign_dz_layout_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_FOREIGN_DZ_LAYOUT (vips_foreign_dz_layout_get_type()) #define VIPS_TYPE_FOREIGN_DZ_LAYOUT (vips_foreign_dz_layout_get_type())
GType vips_foreign_dz_depth_get_type (void) G_GNUC_CONST; GType vips_foreign_dz_depth_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_FOREIGN_DZ_DEPTH (vips_foreign_dz_depth_get_type()) #define VIPS_TYPE_FOREIGN_DZ_DEPTH (vips_foreign_dz_depth_get_type())
GType vips_foreign_dz_container_get_type (void) G_GNUC_CONST; GType vips_foreign_dz_container_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_FOREIGN_DZ_CONTAINER (vips_foreign_dz_container_get_type( )) #define VIPS_TYPE_FOREIGN_DZ_CONTAINER (vips_foreign_dz_container_get_type( ))
/* enumerations from "../../../libvips/include/vips/arithmetic.h" */ /* enumerations from "../../../libvips/include/vips/arithmetic.h" */
GType vips_operation_math_get_type (void) G_GNUC_CONST; GType vips_operation_math_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_MATH (vips_operation_math_get_type()) #define VIPS_TYPE_OPERATION_MATH (vips_operation_math_get_type())
GType vips_operation_math2_get_type (void) G_GNUC_CONST; GType vips_operation_math2_get_type (void) G_GNUC_CONST;
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 error.h   error.h 
skipping to change at line 70 skipping to change at line 70
void vips_error_exit( const char *fmt, ... ) void vips_error_exit( const char *fmt, ... )
__attribute__((noreturn, format(printf, 1, 2))); __attribute__((noreturn, format(printf, 1, 2)));
int vips_check_uncoded( const char *domain, VipsImage *im ); int vips_check_uncoded( const char *domain, VipsImage *im );
int vips_check_coding( const char *domain, VipsImage *im, VipsCoding coding ); int vips_check_coding( const char *domain, VipsImage *im, VipsCoding coding );
int vips_check_coding_known( const char *domain, VipsImage *im ); int vips_check_coding_known( const char *domain, VipsImage *im );
int vips_check_coding_noneorlabq( const char *domain, VipsImage *im ); int vips_check_coding_noneorlabq( const char *domain, VipsImage *im );
int vips_check_coding_same( const char *domain, VipsImage *im1, VipsImage * im2 ); int vips_check_coding_same( const char *domain, VipsImage *im1, VipsImage * im2 );
int vips_check_mono( const char *domain, VipsImage *im ); int vips_check_mono( const char *domain, VipsImage *im );
int vips_check_bands( const char *domain, VipsImage *im, int bands ); int vips_check_bands( const char *domain, VipsImage *im, int bands );
int vips_check_bands_1or3( const char *domain, VipsImage *in ); int vips_check_bands_1or3( const char *domain, VipsImage *im );
int vips_check_bands_atleast( const char *domain, VipsImage *im, int bands ); int vips_check_bands_atleast( const char *domain, VipsImage *im, int bands );
int vips_check_bands_1orn( const char *domain, VipsImage *im1, VipsImage *i m2 ); int vips_check_bands_1orn( const char *domain, VipsImage *im1, VipsImage *i m2 );
int vips_check_bands_1orn_unary( const char *domain, VipsImage *im, int n ) ; int vips_check_bands_1orn_unary( const char *domain, VipsImage *im, int n ) ;
int vips_check_bands_same( const char *domain, VipsImage *im1, VipsImage *i m2 ); int vips_check_bands_same( const char *domain, VipsImage *im1, VipsImage *i m2 );
int vips_check_bandno( const char *domain, VipsImage *im, int bandno ); int vips_check_bandno( const char *domain, VipsImage *im, int bandno );
int vips_check_int( const char *domain, VipsImage *im ); int vips_check_int( const char *domain, VipsImage *im );
int vips_check_uint( const char *domain, VipsImage *im ); int vips_check_uint( const char *domain, VipsImage *im );
int vips_check_uintorf( const char *domain, VipsImage *im ); int vips_check_uintorf( const char *domain, VipsImage *im );
int vips_check_noncomplex( const char *domain, VipsImage *im ); int vips_check_noncomplex( const char *domain, VipsImage *im );
int vips_check_complex( const char *domain, VipsImage *im ); int vips_check_complex( const char *domain, VipsImage *im );
skipping to change at line 94 skipping to change at line 94
int vips_check_u8or16orf( const char *domain, VipsImage *im ); int vips_check_u8or16orf( const char *domain, VipsImage *im );
int vips_check_format_same( const char *domain, VipsImage *im1, VipsImage * im2 ); int vips_check_format_same( const char *domain, VipsImage *im1, VipsImage * im2 );
int vips_check_size_same( const char *domain, VipsImage *im1, VipsImage *im 2 ); int vips_check_size_same( const char *domain, VipsImage *im1, VipsImage *im 2 );
int vips_check_oddsquare( const char *domain, VipsImage *im ); int vips_check_oddsquare( const char *domain, VipsImage *im );
int vips_check_vector_length( const char *domain, int n, int len ); int vips_check_vector_length( const char *domain, int n, int len );
int vips_check_vector( const char *domain, int n, VipsImage *im ); int vips_check_vector( const char *domain, int n, VipsImage *im );
int vips_check_hist( const char *domain, VipsImage *im ); int vips_check_hist( const char *domain, VipsImage *im );
int vips_check_matrix( const char *domain, VipsImage *im, VipsImage **out ) ; int vips_check_matrix( const char *domain, VipsImage *im, VipsImage **out ) ;
int vips_check_separable( const char *domain, VipsImage *im ); int vips_check_separable( const char *domain, VipsImage *im );
int vips_check_imask( const char *domain, INTMASK *mask );
int vips_check_dmask( const char *domain, DOUBLEMASK *mask );
int vips_check_dmask_1d( const char *domain, DOUBLEMASK *mask );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_ERROR_H*/ #endif /*VIPS_ERROR_H*/
 End of changes. 2 change blocks. 
5 lines changed or deleted 1 lines changed or added


 foreign.h   foreign.h 
skipping to change at line 162 skipping to change at line 162
typedef struct _VipsForeignLoadClass { typedef struct _VipsForeignLoadClass {
VipsForeignClass parent_class; VipsForeignClass parent_class;
/*< public >*/ /*< public >*/
/* Is a file in this format. /* Is a file in this format.
* *
* This function should return %TRUE if the file contains an image o f * This function should return %TRUE if the file contains an image o f
* this type. If you don't define this function, #VipsForeignLoad * this type. If you don't define this function, #VipsForeignLoad
* will use @suffs instead. * will use @suffs instead.
*/ */
gboolean (*is_a)( const char * ); gboolean (*is_a)( const char *filename );
/* Is a buffer in this format. /* Is a buffer in this format.
* *
* This function should return %TRUE if the buffer contains an image of * This function should return %TRUE if the buffer contains an image of
* this type. * this type.
*/ */
gboolean (*is_a_buffer)( void *, size_t ); gboolean (*is_a_buffer)( void *data, size_t size );
/* Get the flags from a filename. /* Get the flags from a filename.
* *
* This function should examine the file and return a set * This function should examine the file and return a set
* of flags. If you don't define it, vips will default to 0 (no flag s * of flags. If you don't define it, vips will default to 0 (no flag s
* set). * set).
* *
* This operation is necessary for vips7 compatibility. * This operation is necessary for vips7 compatibility.
*/ */
VipsForeignFlags (*get_flags_filename)( const char * ); VipsForeignFlags (*get_flags_filename)( const char *filename );
/* Get the flags for this load operation. Images can be loaded from /* Get the flags for this load operation. Images can be loaded from
* (for example) memory areas rather than files, so you can't just u se * (for example) memory areas rather than files, so you can't just u se
* @get_flags_filename(). * @get_flags_filename().
*/ */
VipsForeignFlags (*get_flags)( VipsForeignLoad * ); VipsForeignFlags (*get_flags)( VipsForeignLoad *load );
/* Do the minimum read we can. /* Do the minimum read we can.
* *
* Set the header fields in @out from @filename. If you can read the * Set the header fields in @out from @filename. If you can read the
* whole image as well with no performance cost (as with vipsload), * whole image as well with no performance cost (as with vipsload),
* or if your loader does not support reading only the header, read * or if your loader does not support reading only the header, read
* the entire image in this method and leave @load() NULL. * the entire image in this method and leave @load() NULL.
* *
* @header() needs to set the dhint on the image .. otherwise you ge t * @header() needs to set the dhint on the image .. otherwise you ge t
* the default SMALLTILE. * the default SMALLTILE.
* *
* Return 0 for success, -1 for error, setting * Return 0 for success, -1 for error, setting
* vips_error(). * vips_error().
*/ */
int (*header)( VipsForeignLoad * ); int (*header)( VipsForeignLoad *load );
/* Read the whole image into @real. The pixels will get copied to @o ut /* Read the whole image into @real. The pixels will get copied to @o ut
* later. * later.
* *
* You can omit this method if you define a @header() method which * You can omit this method if you define a @header() method which
* loads the whole file. * loads the whole file.
* *
* Return 0 for success, -1 for error, setting * Return 0 for success, -1 for error, setting
* vips_error(). * vips_error().
*/ */
int (*load)( VipsForeignLoad * ); int (*load)( VipsForeignLoad *load );
} VipsForeignLoadClass; } VipsForeignLoadClass;
GType vips_foreign_load_get_type( void ); GType vips_foreign_load_get_type( void );
const char *vips_foreign_find_load( const char *filename ); const char *vips_foreign_find_load( const char *filename );
const char *vips_foreign_find_load_buffer( void *buf, size_t len ); const char *vips_foreign_find_load_buffer( void *data, size_t size );
VipsForeignFlags vips_foreign_flags( const char *loader, const char *filena me ); VipsForeignFlags vips_foreign_flags( const char *loader, const char *filena me );
gboolean vips_foreign_is_a( const char *loader, const char *filename ); gboolean vips_foreign_is_a( const char *loader, const char *filename );
#define VIPS_TYPE_FOREIGN_SAVE (vips_foreign_save_get_type()) #define VIPS_TYPE_FOREIGN_SAVE (vips_foreign_save_get_type())
#define VIPS_FOREIGN_SAVE( obj ) \ #define VIPS_FOREIGN_SAVE( obj ) \
(G_TYPE_CHECK_INSTANCE_CAST( (obj), \ (G_TYPE_CHECK_INSTANCE_CAST( (obj), \
VIPS_TYPE_FOREIGN_SAVE, VipsForeignSave )) VIPS_TYPE_FOREIGN_SAVE, VipsForeignSave ))
#define VIPS_FOREIGN_SAVE_CLASS( klass ) \ #define VIPS_FOREIGN_SAVE_CLASS( klass ) \
(G_TYPE_CHECK_CLASS_CAST( (klass), \ (G_TYPE_CHECK_CLASS_CAST( (klass), \
skipping to change at line 259 skipping to change at line 259
VIPS_SAVEABLE_RGB, VIPS_SAVEABLE_RGB,
VIPS_SAVEABLE_RGBA, VIPS_SAVEABLE_RGBA,
VIPS_SAVEABLE_RGB_CMYK, VIPS_SAVEABLE_RGB_CMYK,
VIPS_SAVEABLE_ANY, VIPS_SAVEABLE_ANY,
VIPS_SAVEABLE_LAST VIPS_SAVEABLE_LAST
} VipsSaveable; } VipsSaveable;
typedef struct _VipsForeignSave { typedef struct _VipsForeignSave {
VipsForeign parent_object; VipsForeign parent_object;
/* Dont't attach metadata. /* Don't attach metadata.
*/ */
gboolean strip; gboolean strip;
/* If flattening out alpha, the background colour to use. Default to
* 0 (black).
*/
VipsArrayDouble *background;
/*< public >*/ /*< public >*/
/* The image we are to save, as supplied by our caller. /* The image we are to save, as supplied by our caller.
*/ */
VipsImage *in; VipsImage *in;
/* @in converted to a saveable format (eg. 8-bit RGB) according to t he /* @in converted to a saveable format (eg. 8-bit RGB) according to t he
* instructions you give in the class fields below. * instructions you give in the class fields below.
* *
* This is the image you should actually write to the output. * This is the image you should actually write to the output.
skipping to change at line 434 skipping to change at line 439
int vips_matrixload( const char *filename, VipsImage **out, ... ) int vips_matrixload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_matrixsave( VipsImage *in, const char *filename, ... ) int vips_matrixsave( VipsImage *in, const char *filename, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_matrixprint( VipsImage *in, ... ) int vips_matrixprint( VipsImage *in, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_magickload( const char *filename, VipsImage **out, ... ) int vips_magickload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
/**
* VipsForeignPngFilter:
* @VIPS_FOREIGN_PNG_FILTER_NONE: no filtering
* @VIPS_FOREIGN_PNG_FILTER_SUB: difference to the left
* @VIPS_FOREIGN_PNG_FILTER_UP: difference up
* @VIPS_FOREIGN_PNG_FILTER_AVG: average of left and up
* @VIPS_FOREIGN_PNG_FILTER_PAETH: pick best neighbor predictor automatical
ly
* @VIPS_FOREIGN_PNG_FILTER_ALL: adaptive
*
* http://www.w3.org/TR/PNG-Filters.html
* The values mirror those of png.h in libpng.
*/
typedef enum /*< flags >*/ {
VIPS_FOREIGN_PNG_FILTER_NONE = 0x08,
VIPS_FOREIGN_PNG_FILTER_SUB = 0x10,
VIPS_FOREIGN_PNG_FILTER_UP = 0x20,
VIPS_FOREIGN_PNG_FILTER_AVG = 0x40,
VIPS_FOREIGN_PNG_FILTER_PAETH = 0x80,
VIPS_FOREIGN_PNG_FILTER_ALL = 0xEA
} VipsForeignPngFilter;
int vips_pngload( const char *filename, VipsImage **out, ... ) int vips_pngload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_pngload_buffer( void *buf, size_t len, VipsImage **out, ... ) int vips_pngload_buffer( void *buf, size_t len, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_pngsave( VipsImage *in, const char *filename, ... ) int vips_pngsave( VipsImage *in, const char *filename, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_pngsave_buffer( VipsImage *in, void **buf, size_t *len, ... ) int vips_pngsave_buffer( VipsImage *in, void **buf, size_t *len, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_ppmload( const char *filename, VipsImage **out, ... ) int vips_ppmload( const char *filename, VipsImage **out, ... )
skipping to change at line 499 skipping to change at line 525
* @VIPS_FOREIGN_DZ_CONTAINER_ZIP: write tiles to a zip file * @VIPS_FOREIGN_DZ_CONTAINER_ZIP: write tiles to a zip file
* *
* How many pyramid layers to create. * How many pyramid layers to create.
*/ */
typedef enum { typedef enum {
VIPS_FOREIGN_DZ_CONTAINER_FS, VIPS_FOREIGN_DZ_CONTAINER_FS,
VIPS_FOREIGN_DZ_CONTAINER_ZIP, VIPS_FOREIGN_DZ_CONTAINER_ZIP,
VIPS_FOREIGN_DZ_CONTAINER_LAST VIPS_FOREIGN_DZ_CONTAINER_LAST
} VipsForeignDzContainer; } VipsForeignDzContainer;
int vips_dzsave( VipsImage *in, const char *basename, ... ) int vips_dzsave( VipsImage *in, const char *name, ... )
__attribute__((sentinel)); __attribute__((sentinel));
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_FOREIGN_H*/ #endif /*VIPS_FOREIGN_H*/
 End of changes. 11 change blocks. 
9 lines changed or deleted 36 lines changed or added


 generate.h   generate.h 
skipping to change at line 70 skipping to change at line 70
int vips_sink_memory( VipsImage *im ); int vips_sink_memory( VipsImage *im );
void *vips_start_one( VipsImage *out, void *a, void *b ); void *vips_start_one( VipsImage *out, void *a, void *b );
int vips_stop_one( void *seq, void *a, void *b ); int vips_stop_one( void *seq, void *a, void *b );
void *vips_start_many( VipsImage *out, void *a, void *b ); void *vips_start_many( VipsImage *out, void *a, void *b );
int vips_stop_many( void *seq, void *a, void *b ); int vips_stop_many( void *seq, void *a, void *b );
VipsImage **vips_allocate_input_array( VipsImage *out, ... ) VipsImage **vips_allocate_input_array( VipsImage *out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_image_generate( VipsImage *im, int vips_image_generate( VipsImage *image,
VipsStartFn start_fn, VipsGenerateFn generate_fn, VipsStopFn stop_fn , VipsStartFn start_fn, VipsGenerateFn generate_fn, VipsStopFn stop_fn ,
void *a, void *b void *a, void *b
); );
int vips_image_pipeline_array( VipsImage *image, int vips_image_pipeline_array( VipsImage *image,
VipsDemandStyle hint, VipsImage **in ); VipsDemandStyle hint, VipsImage **in );
int vips_image_pipelinev( VipsImage *image, VipsDemandStyle hint, ... ) int vips_image_pipelinev( VipsImage *image, VipsDemandStyle hint, ... )
__attribute__((sentinel)); __attribute__((sentinel));
#ifdef __cplusplus #ifdef __cplusplus
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 header.h   header.h 
skipping to change at line 111 skipping to change at line 111
VipsBandFormat vips_image_get_format( const VipsImage *image ); VipsBandFormat vips_image_get_format( const VipsImage *image );
VipsCoding vips_image_get_coding( const VipsImage *image ); VipsCoding vips_image_get_coding( const VipsImage *image );
VipsInterpretation vips_image_get_interpretation( const VipsImage *image ); VipsInterpretation vips_image_get_interpretation( const VipsImage *image );
VipsInterpretation vips_image_guess_interpretation( const VipsImage *image ); VipsInterpretation vips_image_guess_interpretation( const VipsImage *image );
double vips_image_get_xres( const VipsImage *image ); double vips_image_get_xres( const VipsImage *image );
double vips_image_get_yres( const VipsImage *image ); double vips_image_get_yres( const VipsImage *image );
int vips_image_get_xoffset( const VipsImage *image ); int vips_image_get_xoffset( const VipsImage *image );
int vips_image_get_yoffset( const VipsImage *image ); int vips_image_get_yoffset( const VipsImage *image );
const char *vips_image_get_filename( const VipsImage *image ); const char *vips_image_get_filename( const VipsImage *image );
const char *vips_image_get_mode( const VipsImage *image ); const char *vips_image_get_mode( const VipsImage *image );
double vips_image_get_scale( const VipsImage *array ); double vips_image_get_scale( const VipsImage *image );
double vips_image_get_offset( const VipsImage *array ); double vips_image_get_offset( const VipsImage *image );
void *vips_image_get_data( VipsImage *image ); const void *vips_image_get_data( VipsImage *image );
void vips_image_init_fields( VipsImage *image, void vips_image_init_fields( VipsImage *image,
int xsize, int ysize, int bands, int xsize, int ysize, int bands,
VipsBandFormat format, VipsCoding coding, VipsBandFormat format, VipsCoding coding,
VipsInterpretation interpretation, VipsInterpretation interpretation,
double xres, double yres ); double xres, double yres );
void vips_image_set( VipsImage *image, const char *field, GValue *value ); void vips_image_set( VipsImage *image, const char *field, GValue *value );
int vips_image_get( const VipsImage *image, int vips_image_get( const VipsImage *image,
const char *field, GValue *value_copy ); const char *field, GValue *value_copy );
 End of changes. 1 change blocks. 
3 lines changed or deleted 3 lines changed or added


 image.h   image.h 
skipping to change at line 409 skipping to change at line 409
#define VIPS_MATRIX( I, X, Y ) \ #define VIPS_MATRIX( I, X, Y ) \
((double *) VIPS_IMAGE_ADDR( I, X, Y )) ((double *) VIPS_IMAGE_ADDR( I, X, Y ))
#endif /*VIPS_DEBUG*/ #endif /*VIPS_DEBUG*/
void vips_image_invalidate_all( VipsImage *image ); void vips_image_invalidate_all( VipsImage *image );
void vips_image_minimise_all( VipsImage *image ); void vips_image_minimise_all( VipsImage *image );
void vips_image_set_progress( VipsImage *image, gboolean progress ); void vips_image_set_progress( VipsImage *image, gboolean progress );
char *vips_filename_get_filename( const char *vips_filename );
char *vips_filename_get_options( const char *vips_filename );
VipsImage *vips_image_new( void ); VipsImage *vips_image_new( void );
VipsImage *vips_image_new_memory( void ); VipsImage *vips_image_new_memory( void );
VipsImage *vips_image_new_from_file( const char *name, ... ) VipsImage *vips_image_new_from_file( const char *name, ... )
__attribute__((sentinel)); __attribute__((sentinel));
VipsImage *vips_image_new_from_file_RW( const char *filename ); VipsImage *vips_image_new_from_file_RW( const char *filename );
VipsImage *vips_image_new_from_file_raw( const char *filename, VipsImage *vips_image_new_from_file_raw( const char *filename,
int xsize, int ysize, int bands, guint64 offset ); int xsize, int ysize, int bands, guint64 offset );
VipsImage *vips_image_new_from_memory( void *buffer, VipsImage *vips_image_new_from_memory( void *data, size_t size,
int xsize, int ysize, int bands, VipsBandFormat bandfmt ); int width, int height, int bands, VipsBandFormat format );
VipsImage *vips_image_new_from_buffer( void *buf, size_t len, VipsImage *vips_image_new_from_buffer( void *buf, size_t len,
const char *option_string, ... ) const char *option_string, ... )
__attribute__((sentinel)); __attribute__((sentinel));
VipsImage *vips_image_new_matrix( int width, int height ); VipsImage *vips_image_new_matrix( int width, int height );
VipsImage *vips_image_new_matrixv( int width, int height, ... ); VipsImage *vips_image_new_matrixv( int width, int height, ... );
VipsImage *vips_image_new_matrix_from_array( int width, int height,
double *array, int size );
void vips_image_set_delete_on_close( VipsImage *image, void vips_image_set_delete_on_close( VipsImage *image,
gboolean delete_on_close ); gboolean delete_on_close );
guint64 vips_get_disc_threshold( void );
VipsImage *vips_image_new_temp_file( const char *format ); VipsImage *vips_image_new_temp_file( const char *format );
int vips_image_write( VipsImage *image, VipsImage *out ); int vips_image_write( VipsImage *image, VipsImage *out );
int vips_image_write_to_file( VipsImage *image, const char *filename, ... ) int vips_image_write_to_file( VipsImage *image, const char *name, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_image_write_to_buffer( VipsImage *in, int vips_image_write_to_buffer( VipsImage *in,
const char *name, void **buf, size_t *len, ... ) const char *suffix, void **buf, size_t *size, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_image_write_to_memory( VipsImage *in, void *vips_image_write_to_memory( VipsImage *in, size_t *size );
void **buf_out, size_t *len_out );
int vips_image_decode_predict( VipsImage *im, int vips_image_decode_predict( VipsImage *in,
int *bands, VipsBandFormat *format ); int *bands, VipsBandFormat *format );
int vips_image_decode( VipsImage *in, VipsImage **out ); int vips_image_decode( VipsImage *in, VipsImage **out );
int vips_image_encode( VipsImage *in, VipsImage **out, VipsCoding coding ); int vips_image_encode( VipsImage *in, VipsImage **out, VipsCoding coding );
gboolean vips_image_isMSBfirst( VipsImage *image ); gboolean vips_image_isMSBfirst( VipsImage *image );
gboolean vips_image_isfile( VipsImage *image ); gboolean vips_image_isfile( VipsImage *image );
gboolean vips_image_ispartial( VipsImage *image ); gboolean vips_image_ispartial( VipsImage *image );
int vips_image_wio_input( VipsImage *image ); int vips_image_wio_input( VipsImage *image );
int vips_image_pio_input( VipsImage *image ); int vips_image_pio_input( VipsImage *image );
skipping to change at line 462 skipping to change at line 467
gboolean vips_band_format_isint( VipsBandFormat format ); gboolean vips_band_format_isint( VipsBandFormat format );
gboolean vips_band_format_isuint( VipsBandFormat format ); gboolean vips_band_format_isuint( VipsBandFormat format );
gboolean vips_band_format_is8bit( VipsBandFormat format ); gboolean vips_band_format_is8bit( VipsBandFormat format );
gboolean vips_band_format_isfloat( VipsBandFormat format ); gboolean vips_band_format_isfloat( VipsBandFormat format );
gboolean vips_band_format_iscomplex( VipsBandFormat format ); gboolean vips_band_format_iscomplex( VipsBandFormat format );
int vips_system( const char *cmd_format, ... ) int vips_system( const char *cmd_format, ... )
__attribute__((sentinel)); __attribute__((sentinel));
/* Defined in type.c, but declared here since they use VipsImage. /* Defined in type.c but declared here, since they use VipsImage.
*/ */
VipsArrayImage *vips_array_image_new( VipsImage **array, int n );
VipsArrayImage *vips_array_image_newv( int n, ... );
VipsImage **vips_array_image_get( VipsArrayImage *array, int *n );
VipsImage **vips_value_get_array_image( const GValue *value, int *n ); VipsImage **vips_value_get_array_image( const GValue *value, int *n );
int vips_value_set_array_image( GValue *value, VipsImage **array, int n ); void vips_value_set_array_image( GValue *value, int n );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_IMAGE_H*/ #endif /*VIPS_IMAGE_H*/
 End of changes. 11 change blocks. 
9 lines changed or deleted 17 lines changed or added


 interpolate.h   interpolate.h 
skipping to change at line 77 skipping to change at line 77
typedef struct _VipsInterpolateClass { typedef struct _VipsInterpolateClass {
VipsObjectClass parent_class; VipsObjectClass parent_class;
/* Write to pixel out(x,y), interpolating from in(x,y). The caller h as /* Write to pixel out(x,y), interpolating from in(x,y). The caller h as
* to set the regions up. * to set the regions up.
*/ */
VipsInterpolateMethod interpolate; VipsInterpolateMethod interpolate;
/* This interpolator needs a window this many pixels across and down . /* This interpolator needs a window this many pixels across and down .
*/ */
int (*get_window_size)( VipsInterpolate * ); int (*get_window_size)( VipsInterpolate *interpolate );
/* Or just set this if you want a constant. /* Or just set this if you want a constant.
*/ */
int window_size; int window_size;
/* Stencils are offset by this much. Default to window_size / 2 - 1 /* Stencils are offset by this much. Default to window_size / 2 - 1
* (centering) if get_window_offset is NULL and window_offset is -1. * (centering) if get_window_offset is NULL and window_offset is -1.
*/ */
int (*get_window_offset)( VipsInterpolate * ); int (*get_window_offset)( VipsInterpolate *interpolate );
int window_offset; int window_offset;
} VipsInterpolateClass; } VipsInterpolateClass;
GType vips_interpolate_get_type( void ); GType vips_interpolate_get_type( void );
void vips_interpolate( VipsInterpolate *interpolate, void vips_interpolate( VipsInterpolate *interpolate,
void *out, VipsRegion *in, double x, double y ); void *out, VipsRegion *in, double x, double y );
VipsInterpolateMethod vips_interpolate_get_method( VipsInterpolate *interpo late ); VipsInterpolateMethod vips_interpolate_get_method( VipsInterpolate *interpo late );
int vips_interpolate_get_window_size( VipsInterpolate *interpolate ); int vips_interpolate_get_window_size( VipsInterpolate *interpolate );
int vips_interpolate_get_window_offset( VipsInterpolate *interpolate ); int vips_interpolate_get_window_offset( VipsInterpolate *interpolate );
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 morphology.h   morphology.h 
skipping to change at line 58 skipping to change at line 58
VipsOperationMorphology morph, ... ) VipsOperationMorphology morph, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_rank( VipsImage *in, VipsImage **out, int vips_rank( VipsImage *in, VipsImage **out,
int width, int height, int index, ... ) int width, int height, int index, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_median( VipsImage *in, VipsImage **out, int size, ... ) int vips_median( VipsImage *in, VipsImage **out, int size, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_countlines( VipsImage *in, double *nolines, int vips_countlines( VipsImage *in, double *nolines,
VipsDirection direction, ... ) VipsDirection direction, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_labelregions( VipsImage *in, VipsImage **out, ... ) int vips_labelregions( VipsImage *in, VipsImage **mask, ... )
__attribute__((sentinel)); __attribute__((sentinel));
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_MORPHOLOGY_H*/ #endif /*VIPS_MORPHOLOGY_H*/
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 mosaicing.h   mosaicing.h 
skipping to change at line 65 skipping to change at line 65
int xr1, int yr1, int xs1, int ys1, int xr1, int yr1, int xs1, int ys1,
int xr2, int yr2, int xs2, int ys2, ... ) int xr2, int yr2, int xs2, int ys2, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_globalbalance( VipsImage *in, VipsImage **out, ... ) int vips_globalbalance( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_remosaic( VipsImage *in, VipsImage **out, int vips_remosaic( VipsImage *in, VipsImage **out,
const char *old_str, const char *new_str, ... ) const char *old_str, const char *new_str, ... )
__attribute__((sentinel)); __attribute__((sentinel));
#include <vips/vips.h>
int im_correl( VipsImage *ref, VipsImage *sec,
int xref, int yref, int xsec, int ysec,
int hwindowsize, int hsearchsize,
double *correlation, int *x, int *y );
int im_align_bands( VipsImage *in, VipsImage *out );
int im_maxpos_subpel( VipsImage *in, double *x, double *y );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_MOSAICING_H*/ #endif /*IM_MOSAICING_H*/
 End of changes. 1 change blocks. 
10 lines changed or deleted 0 lines changed or added


 object.h   object.h 
skipping to change at line 66 skipping to change at line 66
*/ */
typedef enum /*< flags >*/ { typedef enum /*< flags >*/ {
VIPS_ARGUMENT_NONE = 0, VIPS_ARGUMENT_NONE = 0,
VIPS_ARGUMENT_REQUIRED = 1, VIPS_ARGUMENT_REQUIRED = 1,
VIPS_ARGUMENT_CONSTRUCT = 2, VIPS_ARGUMENT_CONSTRUCT = 2,
VIPS_ARGUMENT_SET_ONCE = 4, VIPS_ARGUMENT_SET_ONCE = 4,
VIPS_ARGUMENT_SET_ALWAYS = 8, VIPS_ARGUMENT_SET_ALWAYS = 8,
VIPS_ARGUMENT_INPUT = 16, VIPS_ARGUMENT_INPUT = 16,
VIPS_ARGUMENT_OUTPUT = 32, VIPS_ARGUMENT_OUTPUT = 32,
VIPS_ARGUMENT_DEPRECATED = 64 VIPS_ARGUMENT_DEPRECATED = 64,
VIPS_ARGUMENT_MODIFY = 128
} VipsArgumentFlags; } VipsArgumentFlags;
/* Useful flag combinations. User-visible ones are: /* Useful flag combinations. User-visible ones are:
VIPS_ARGUMENT_REQUIRED_INPUT Eg. the "left" argument for an add operation VIPS_ARGUMENT_REQUIRED_INPUT Eg. the "left" argument for an add operation
VIPS_ARGUMENT_OPTIONAL_INPUT Eg. the "caption" for an object VIPS_ARGUMENT_OPTIONAL_INPUT Eg. the "caption" for an object
VIPS_ARGUMENT_REQUIRED_OUTPUT Eg. the "result" of an add operation VIPS_ARGUMENT_REQUIRED_OUTPUT Eg. the "result" of an add operation
skipping to change at line 109 skipping to change at line 110
(VIPS_ARGUMENT_OUTPUT | \ (VIPS_ARGUMENT_OUTPUT | \
VIPS_ARGUMENT_CONSTRUCT) VIPS_ARGUMENT_CONSTRUCT)
extern int _vips__argument_id; extern int _vips__argument_id;
#define VIPS_ARG_IMAGE( CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET ) { \ #define VIPS_ARG_IMAGE( CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET ) { \
GParamSpec *pspec; \ GParamSpec *pspec; \
\ \
pspec = g_param_spec_object( (NAME), (LONG), (DESC), \ pspec = g_param_spec_object( (NAME), (LONG), (DESC), \
VIPS_TYPE_IMAGE, \ VIPS_TYPE_IMAGE, \
G_PARAM_READWRITE ); \ (GParamFlags) (G_PARAM_READWRITE) ); \
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \ _vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) ); \
} }
#define VIPS_ARG_INTERPOLATE( CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFF SET ) { \ #define VIPS_ARG_INTERPOLATE( CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFF SET ) { \
GParamSpec *pspec; \ GParamSpec *pspec; \
\ \
pspec = g_param_spec_object( (NAME), (LONG), (DESC), \ pspec = g_param_spec_object( (NAME), (LONG), (DESC), \
VIPS_TYPE_INTERPOLATE, \ VIPS_TYPE_INTERPOLATE, \
G_PARAM_READWRITE ); \ (GParamFlags) (G_PARAM_READWRITE) ); \
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \ _vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) ); \
} }
#define VIPS_ARG_BOOL( CLASS, NAME, PRIORITY, LONG, DESC, \ #define VIPS_ARG_BOOL( CLASS, NAME, PRIORITY, LONG, DESC, \
FLAGS, OFFSET, VALUE ) { \ FLAGS, OFFSET, VALUE ) { \
GParamSpec *pspec; \ GParamSpec *pspec; \
\ \
pspec = g_param_spec_boolean( (NAME), (LONG), (DESC), \ pspec = g_param_spec_boolean( (NAME), (LONG), (DESC), \
(VALUE), \ (VALUE), \
G_PARAM_READWRITE ); \ (GParamFlags) (G_PARAM_READWRITE) ); \
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \ _vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) ); \
} }
#define VIPS_ARG_DOUBLE( CLASS, NAME, PRIORITY, LONG, DESC, \ #define VIPS_ARG_DOUBLE( CLASS, NAME, PRIORITY, LONG, DESC, \
FLAGS, OFFSET, MIN, MAX, VALUE ) { \ FLAGS, OFFSET, MIN, MAX, VALUE ) { \
GParamSpec *pspec; \ GParamSpec *pspec; \
\ \
pspec = g_param_spec_double( (NAME), (LONG), (DESC), \ pspec = g_param_spec_double( (NAME), (LONG), (DESC), \
(MIN), (MAX), (VALUE), \ (MIN), (MAX), (VALUE), \
G_PARAM_READWRITE );\ (GParamFlags) (G_PARAM_READWRITE) );\
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \ _vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) ); \
} }
#define VIPS_ARG_BOXED( CLASS, NAME, PRIORITY, LONG, DESC, \ #define VIPS_ARG_BOXED( CLASS, NAME, PRIORITY, LONG, DESC, \
FLAGS, OFFSET, TYPE ) { \ FLAGS, OFFSET, TYPE ) { \
GParamSpec *pspec; \ GParamSpec *pspec; \
\ \
pspec = g_param_spec_boxed( (NAME), (LONG), (DESC), \ pspec = g_param_spec_boxed( (NAME), (LONG), (DESC), \
(TYPE), \ (TYPE), \
G_PARAM_READWRITE );\ (GParamFlags) (G_PARAM_READWRITE) );\
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \ _vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) ); \
} }
#define VIPS_ARG_INT( CLASS, NAME, PRIORITY, LONG, DESC, \ #define VIPS_ARG_INT( CLASS, NAME, PRIORITY, LONG, DESC, \
FLAGS, OFFSET, MIN, MAX, VALUE ) { \ FLAGS, OFFSET, MIN, MAX, VALUE ) { \
GParamSpec *pspec; \ GParamSpec *pspec; \
\ \
pspec = g_param_spec_int( (NAME), (LONG), (DESC), \ pspec = g_param_spec_int( (NAME), (LONG), (DESC), \
(MIN), (MAX), (VALUE), \ (MIN), (MAX), (VALUE), \
G_PARAM_READWRITE );\ (GParamFlags) (G_PARAM_READWRITE) );\
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \ _vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) ); \
} }
#define VIPS_ARG_UINT64( CLASS, NAME, PRIORITY, LONG, DESC, \ #define VIPS_ARG_UINT64( CLASS, NAME, PRIORITY, LONG, DESC, \
FLAGS, OFFSET, MIN, MAX, VALUE ) { \ FLAGS, OFFSET, MIN, MAX, VALUE ) { \
GParamSpec *pspec; \ GParamSpec *pspec; \
\ \
pspec = g_param_spec_uint64( (NAME), (LONG), (DESC), \ pspec = g_param_spec_uint64( (NAME), (LONG), (DESC), \
(MIN), (MAX), (VALUE), \ (MIN), (MAX), (VALUE), \
G_PARAM_READWRITE );\ (GParamFlags) (G_PARAM_READWRITE) );\
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \ _vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) ); \
} }
#define VIPS_ARG_ENUM( CLASS, NAME, PRIORITY, LONG, DESC, \ #define VIPS_ARG_ENUM( CLASS, NAME, PRIORITY, LONG, DESC, \
FLAGS, OFFSET, TYPE, VALUE ) { \ FLAGS, OFFSET, TYPE, VALUE ) { \
GParamSpec *pspec; \ GParamSpec *pspec; \
\ \
pspec = g_param_spec_enum( (NAME), (LONG), (DESC), \ pspec = g_param_spec_enum( (NAME), (LONG), (DESC), \
(TYPE), (VALUE), \ (TYPE), (VALUE), \
G_PARAM_READWRITE );\ (GParamFlags) (G_PARAM_READWRITE) );\
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \ _vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) ); \
} }
#define VIPS_ARG_FLAGS( CLASS, NAME, PRIORITY, LONG, DESC, \ #define VIPS_ARG_FLAGS( CLASS, NAME, PRIORITY, LONG, DESC, \
FLAGS, OFFSET, TYPE, VALUE ) { \ FLAGS, OFFSET, TYPE, VALUE ) { \
GParamSpec *pspec; \ GParamSpec *pspec; \
\ \
pspec = g_param_spec_flags( (NAME), (LONG), (DESC), \ pspec = g_param_spec_flags( (NAME), (LONG), (DESC), \
(TYPE), (VALUE), \ (TYPE), (VALUE), \
G_PARAM_READWRITE );\ (GParamFlags) (G_PARAM_READWRITE) );\
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \ _vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) ); \
} }
#define VIPS_ARG_STRING( CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET, \ #define VIPS_ARG_STRING( CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET, \
VALUE ) { \ VALUE ) { \
GParamSpec *pspec; \ GParamSpec *pspec; \
\ \
pspec = g_param_spec_string( (NAME), (LONG), (DESC), \ pspec = g_param_spec_string( (NAME), (LONG), (DESC), \
(VALUE), \ (VALUE), \
G_PARAM_READWRITE ); \ (GParamFlags) (G_PARAM_READWRITE) ); \
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \ _vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) ); \
} }
#define VIPS_ARG_POINTER( CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET ) { \ #define VIPS_ARG_POINTER( CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET ) { \
GParamSpec *pspec; \ GParamSpec *pspec; \
\ \
pspec = g_param_spec_pointer( (NAME), (LONG), (DESC), \ pspec = g_param_spec_pointer( (NAME), (LONG), (DESC), \
G_PARAM_READWRITE ); \ (GParamFlags) (G_PARAM_READWRITE) ); \
g_object_class_install_property( gobject_class, \ g_object_class_install_property( gobject_class, \
_vips__argument_id++, pspec ); \ _vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) ); \
} }
/* Keep one of these for every argument. /* Keep one of these for every argument.
*/ */
typedef struct _VipsArgument { typedef struct _VipsArgument {
GParamSpec *pspec; /* pspec for this argument */ GParamSpec *pspec; /* pspec for this argument */
/* More stuff, see below */ /* More stuff, see below */
} VipsArgument; } VipsArgument;
skipping to change at line 298 skipping to change at line 299
* "invalidate" out. If we go, we need to disconnect. * "invalidate" out. If we go, we need to disconnect.
*/ */
gulong invalidate_id; gulong invalidate_id;
} VipsArgumentInstance; } VipsArgumentInstance;
/* Need to look up our VipsArgument structs from a pspec. Just hash the /* Need to look up our VipsArgument structs from a pspec. Just hash the
* pointer (ie. we assume pspecs are never shared, is this correct?) * pointer (ie. we assume pspecs are never shared, is this correct?)
*/ */
typedef GHashTable VipsArgumentTable; typedef GHashTable VipsArgumentTable;
VipsArgumentInstance *vips__argument_get_instance( VipsArgumentClass *, VipsArgumentInstance *vips__argument_get_instance(
VipsObject * ); VipsArgumentClass *argument_class,
VipsArgument *vips__argument_table_lookup( VipsArgumentTable *, VipsObject *object );
GParamSpec * ); VipsArgument *vips__argument_table_lookup( VipsArgumentTable *argument_clas
s,
GParamSpec *pspec );
void vips__object_set_member( VipsObject *object, GParamSpec *pspec, void vips__object_set_member( VipsObject *object, GParamSpec *pspec,
GObject **member, GObject *argument ); GObject **member, GObject *argument );
typedef void *(*VipsArgumentMapFn)( VipsObject *, GParamSpec *, typedef void *(*VipsArgumentMapFn)( VipsObject *object, GParamSpec *pspec,
VipsArgumentClass *, VipsArgumentInstance *, void *a, void *b ); VipsArgumentClass *argument_class,
VipsArgumentInstance *argument_instance, void *a, void *b );
void *vips_argument_map( VipsObject *object, void *vips_argument_map( VipsObject *object,
VipsArgumentMapFn fn, void *a, void *b ); VipsArgumentMapFn fn, void *a, void *b );
typedef void *(*VipsArgumentClassMapFn)( VipsObjectClass *, GParamSpec *, typedef void *(*VipsArgumentClassMapFn)( VipsObjectClass *object_class,
VipsArgumentClass *, void *a, void *b ); GParamSpec *pspec,
VipsArgumentClass *argument_class, void *a, void *b );
void *vips_argument_class_map( VipsObjectClass *object_class, void *vips_argument_class_map( VipsObjectClass *object_class,
VipsArgumentClassMapFn fn, void *a, void *b ); VipsArgumentClassMapFn fn, void *a, void *b );
gboolean vips_argument_class_needsstring( VipsArgumentClass *argument_class ); gboolean vips_argument_class_needsstring( VipsArgumentClass *argument_class );
int vips_object_get_argument( VipsObject *object, const char *name, int vips_object_get_argument( VipsObject *object, const char *name,
GParamSpec **pspec, GParamSpec **pspec,
VipsArgumentClass **argument_class, VipsArgumentClass **argument_class,
VipsArgumentInstance **argument_instance ); VipsArgumentInstance **argument_instance );
gboolean vips_object_argument_isset( VipsObject *object, const char *name ) ; gboolean vips_object_argument_isset( VipsObject *object, const char *name ) ;
VipsArgumentFlags vips_object_get_argument_flags( VipsObject *object, VipsArgumentFlags vips_object_get_argument_flags( VipsObject *object,
const char *name ); const char *name );
skipping to change at line 460 skipping to change at line 464
*/ */
int (*build)( VipsObject *object ); int (*build)( VipsObject *object );
/* Just after build ... the object is fully ready for work. /* Just after build ... the object is fully ready for work.
*/ */
int (*postbuild)( VipsObject *object ); int (*postbuild)( VipsObject *object );
/* Try to print something about the class, handy for help displays. /* Try to print something about the class, handy for help displays.
* Keep to one line. * Keep to one line.
*/ */
void (*summary_class)( struct _VipsObjectClass *, VipsBuf * ); void (*summary_class)( struct _VipsObjectClass *cls, VipsBuf *buf );
/* Try to print a one-line summary for the object, the user can see /* Try to print a one-line summary for the object, the user can see
* this output via things like "header fred.tif", --vips-cache-trace , * this output via things like "header fred.tif", --vips-cache-trace ,
* etc. * etc.
*/ */
void (*summary)( VipsObject *, VipsBuf * ); void (*summary)( VipsObject *object, VipsBuf *buf );
/* Try to print everything about the object, handy for debugging. /* Try to print everything about the object, handy for debugging.
*/ */
void (*dump)( VipsObject *, VipsBuf * ); void (*dump)( VipsObject *object, VipsBuf *buf );
/* Sanity-check the object. Print messages and stuff. /* Sanity-check the object. Print messages and stuff.
* Handy for debugging. * Handy for debugging.
*/ */
void (*sanity)( VipsObject *, VipsBuf * ); void (*sanity)( VipsObject *object, VipsBuf *buf );
/* Rewind. Save and restore any stuff that needs to survive a /* Rewind. Save and restore any stuff that needs to survive a
* dispose(). * dispose().
*/ */
void (*rewind)( VipsObject * ); void (*rewind)( VipsObject *object );
/* Just before close, everything is still alive. /* Just before close, everything is still alive.
*/ */
void (*preclose)( VipsObject * ); void (*preclose)( VipsObject *object );
/* Close, time to free stuff. /* Close, time to free stuff.
*/ */
void (*close)( VipsObject * ); void (*close)( VipsObject *object );
/* Post-close, everything is dead, except the VipsObject pointer. /* Post-close, everything is dead, except the VipsObject pointer.
* Useful for eg. deleting the file associated with a temp image. * Useful for eg. deleting the file associated with a temp image.
*/ */
void (*postclose)( VipsObject * ); void (*postclose)( VipsObject *object );
/* The CLI interface. Implement these four to get CLI input and outp ut /* The CLI interface. Implement these four to get CLI input and outp ut
* for your object. * for your object.
*/ */
/* Given a command-line arg (eg. a filename), make an instance of th e /* Given a command-line arg (eg. a filename), make an instance of th e
* object. Just do the g_object_new(), don't call _build(). * object. Just do the g_object_new(), don't call _build().
* *
* Don't call this directly, see vips_object_new_from_string(). * Don't call this directly, see vips_object_new_from_string().
*/ */
VipsObject *(*new_from_string)( const char *string ); VipsObject *(*new_from_string)( const char *string );
/* The inverse of ^^. Given an object, output what ->new_from_string () /* The inverse of ^^. Given an object, output what ->new_from_string ()
* would have been given to make that object. * would have been given to make that object.
*/ */
void (*to_string)( VipsObject *, VipsBuf * ); void (*to_string)( VipsObject *object, VipsBuf *buf );
/* Does this output arg need an arg from the command line? Image /* Does this output arg need an arg from the command line? Image
* output, for example, needs a filename to write to. * output, for example, needs a filename to write to.
*/ */
gboolean output_needs_arg; gboolean output_needs_arg;
/* Write the object to the string. Return 0 for success, or -1 on /* Write the object to the string. Return 0 for success, or -1 on
* error, setting vips_error(). string is NULL if output_needs_arg() * error, setting vips_error(). string is NULL if output_needs_arg()
* was FALSE. * was FALSE.
*/ */
skipping to change at line 585 skipping to change at line 589
void vips_object_print_summary_class( VipsObjectClass *klass ); void vips_object_print_summary_class( VipsObjectClass *klass );
void vips_object_print_summary( VipsObject *object ); void vips_object_print_summary( VipsObject *object );
void vips_object_print_dump( VipsObject *object ); void vips_object_print_dump( VipsObject *object );
void vips_object_print_name( VipsObject *object ); void vips_object_print_name( VipsObject *object );
gboolean vips_object_sanity( VipsObject *object ); gboolean vips_object_sanity( VipsObject *object );
GType vips_object_get_type( void ); GType vips_object_get_type( void );
void vips_object_class_install_argument( VipsObjectClass *, GParamSpec *psp void vips_object_class_install_argument( VipsObjectClass *cls,
ec, GParamSpec *pspec, VipsArgumentFlags flags,
VipsArgumentFlags flags, int priority, guint offset ); int priority, guint offset );
int vips_object_set_argument_from_string( VipsObject *object, int vips_object_set_argument_from_string( VipsObject *object,
const char *name, const char *value ); const char *name, const char *value );
gboolean vips_object_argument_needsstring( VipsObject *object, gboolean vips_object_argument_needsstring( VipsObject *object,
const char *name ); const char *name );
int vips_object_get_argument_to_string( VipsObject *object, int vips_object_get_argument_to_string( VipsObject *object,
const char *name, const char *arg ); const char *name, const char *arg );
int vips_object_set_required( VipsObject *object, const char *value ); int vips_object_set_required( VipsObject *object, const char *value );
typedef void *(*VipsObjectSetArguments)( VipsObject *, void *, void * ); typedef void *(*VipsObjectSetArguments)( VipsObject *object, void *a, void *b );
VipsObject *vips_object_new( GType type, VipsObject *vips_object_new( GType type,
VipsObjectSetArguments set, void *a, void *b ); VipsObjectSetArguments set, void *a, void *b );
int vips_object_set_valist( VipsObject *object, va_list ap ); int vips_object_set_valist( VipsObject *object, va_list ap );
int vips_object_set( VipsObject *object, ... ) int vips_object_set( VipsObject *object, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_object_set_from_string( VipsObject *object, const char *string ); int vips_object_set_from_string( VipsObject *object, const char *string );
VipsObject *vips_object_new_from_string( VipsObjectClass *object_class, VipsObject *vips_object_new_from_string( VipsObjectClass *object_class,
const char *p ); const char *p );
void vips_object_to_string( VipsObject *object, VipsBuf *buf ); void vips_object_to_string( VipsObject *object, VipsBuf *buf );
void *vips_object_map( VipsSListMap2Fn fn, void *a, void *b ); void *vips_object_map( VipsSListMap2Fn fn, void *a, void *b );
typedef void *(*VipsTypeMapFn)( GType, void * ); typedef void *(*VipsTypeMapFn)( GType type, void *a );
typedef void *(*VipsTypeMap2Fn)( GType, void *, void * ); typedef void *(*VipsTypeMap2Fn)( GType type, void *a, void *b );
typedef void *(*VipsClassMapFn)( VipsObjectClass *, void * ); typedef void *(*VipsClassMapFn)( VipsObjectClass *cls, void *a );
void *vips_type_map( GType base, VipsTypeMap2Fn fn, void *a, void *b ); void *vips_type_map( GType base, VipsTypeMap2Fn fn, void *a, void *b );
void *vips_type_map_all( GType base, VipsTypeMapFn fn, void *a ); void *vips_type_map_all( GType base, VipsTypeMapFn fn, void *a );
int vips_type_depth( GType type ); int vips_type_depth( GType type );
GType vips_type_find( const char *basename, const char *nickname ); GType vips_type_find( const char *basename, const char *nickname );
const char *vips_nickname_find( GType type );
void *vips_class_map_all( GType base, VipsClassMapFn fn, void *a ); void *vips_class_map_all( GType type, VipsClassMapFn fn, void *a );
VipsObjectClass *vips_class_find( const char *basename, const char *nicknam e ); VipsObjectClass *vips_class_find( const char *basename, const char *nicknam e );
VipsObject **vips_object_local_array( VipsObject *parent, int n ); VipsObject **vips_object_local_array( VipsObject *parent, int n );
void vips_object_local_cb( VipsObject *vobject, GObject *gobject ); void vips_object_local_cb( VipsObject *vobject, GObject *gobject );
#define vips_object_local( V, G ) \ #define vips_object_local( V, G ) \
(g_signal_connect( V, "close", \ (g_signal_connect( V, "close", \
G_CALLBACK( vips_object_local_cb ), G ), 0) G_CALLBACK( vips_object_local_cb ), G ), 0)
void vips_object_set_static( VipsObject *object, gboolean static_object ); void vips_object_set_static( VipsObject *object, gboolean static_object );
void vips_object_print_all( void ); void vips_object_print_all( void );
void vips_object_sanity_all( void ); void vips_object_sanity_all( void );
void vips_object_rewind( VipsObject *object ); void vips_object_rewind( VipsObject *object );
void vips_object_unref_outputs( VipsObject *object ); void vips_object_unref_outputs( VipsObject *object );
const char *vips_object_get_description( VipsObject *object );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_OBJECT_H*/ #endif /*VIPS_OBJECT_H*/
 End of changes. 41 change blocks. 
48 lines changed or deleted 56 lines changed or added


 operation.h   operation.h 
skipping to change at line 38 skipping to change at line 38
*/ */
#ifndef VIPS_OPERATION_H #ifndef VIPS_OPERATION_H
#define VIPS_OPERATION_H #define VIPS_OPERATION_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#include <vips/vips.h>
typedef enum /*< flags >*/ { typedef enum /*< flags >*/ {
VIPS_OPERATION_NONE = 0, VIPS_OPERATION_NONE = 0,
VIPS_OPERATION_SEQUENTIAL = 1, VIPS_OPERATION_SEQUENTIAL = 1,
VIPS_OPERATION_SEQUENTIAL_UNBUFFERED = 2, VIPS_OPERATION_SEQUENTIAL_UNBUFFERED = 2,
VIPS_OPERATION_NOCACHE = 4, VIPS_OPERATION_NOCACHE = 4,
VIPS_OPERATION_DEPRECATED = 8 VIPS_OPERATION_DEPRECATED = 8
} VipsOperationFlags; } VipsOperationFlags;
#define VIPS_TYPE_OPERATION (vips_operation_get_type()) #define VIPS_TYPE_OPERATION (vips_operation_get_type())
#define VIPS_OPERATION( obj ) \ #define VIPS_OPERATION( obj ) \
skipping to change at line 63 skipping to change at line 61
(G_TYPE_CHECK_CLASS_CAST( (klass), \ (G_TYPE_CHECK_CLASS_CAST( (klass), \
VIPS_TYPE_OPERATION, VipsOperationClass )) VIPS_TYPE_OPERATION, VipsOperationClass ))
#define VIPS_IS_OPERATION( obj ) \ #define VIPS_IS_OPERATION( obj ) \
(G_TYPE_CHECK_INSTANCE_TYPE( (obj), VIPS_TYPE_OPERATION )) (G_TYPE_CHECK_INSTANCE_TYPE( (obj), VIPS_TYPE_OPERATION ))
#define VIPS_IS_OPERATION_CLASS( klass ) \ #define VIPS_IS_OPERATION_CLASS( klass ) \
(G_TYPE_CHECK_CLASS_TYPE( (klass), VIPS_TYPE_OPERATION )) (G_TYPE_CHECK_CLASS_TYPE( (klass), VIPS_TYPE_OPERATION ))
#define VIPS_OPERATION_GET_CLASS( obj ) \ #define VIPS_OPERATION_GET_CLASS( obj ) \
(G_TYPE_INSTANCE_GET_CLASS( (obj), \ (G_TYPE_INSTANCE_GET_CLASS( (obj), \
VIPS_TYPE_OPERATION, VipsOperationClass )) VIPS_TYPE_OPERATION, VipsOperationClass ))
typedef gboolean (*VipsOperationBuildFn)( VipsObject * ); typedef gboolean (*VipsOperationBuildFn)( VipsObject *object );
typedef struct _VipsOperation { typedef struct _VipsOperation {
VipsObject parent_instance; VipsObject parent_instance;
/* Keep the hash here. /* Keep the hash here.
*/ */
guint hash; guint hash;
gboolean found_hash; gboolean found_hash;
/* Pixels calculated ... handy for measuring over-calculation. /* Pixels calculated ... handy for measuring over-calculation.
*/ */
int pixels; int pixels;
} VipsOperation; } VipsOperation;
typedef struct _VipsOperationClass { typedef struct _VipsOperationClass {
VipsObjectClass parent_class; VipsObjectClass parent_class;
/* Print the usage message. /* Print the usage message.
*/ */
void (*usage)( struct _VipsOperationClass *, VipsBuf * ); void (*usage)( struct _VipsOperationClass *cls, VipsBuf *buf );
/* Return a set of operation flags. /* Return a set of operation flags.
*/ */
VipsOperationFlags (*get_flags)( VipsOperation * ); VipsOperationFlags (*get_flags)( VipsOperation *operation );
VipsOperationFlags flags; VipsOperationFlags flags;
/* One of our input images has signalled "invalidate". The cache use s /* One of our input images has signalled "invalidate". The cache use s
* VipsOperation::invalidate to drop dirty ops. * VipsOperation::invalidate to drop dirty ops.
*/ */
void (*invalidate)( VipsOperation * ); void (*invalidate)( VipsOperation *operation );
} VipsOperationClass; } VipsOperationClass;
GType vips_operation_get_type( void ); GType vips_operation_get_type( void );
VipsOperationFlags vips_operation_get_flags( VipsOperation *operation ); VipsOperationFlags vips_operation_get_flags( VipsOperation *operation );
void vips_operation_class_print_usage( VipsOperationClass *operation_class ); void vips_operation_class_print_usage( VipsOperationClass *operation_class );
void vips_operation_invalidate( VipsOperation *operation ); void vips_operation_invalidate( VipsOperation *operation );
int vips_operation_call_valist( VipsOperation *operation, va_list ap ); int vips_operation_call_valist( VipsOperation *operation, va_list ap );
VipsOperation *vips_operation_new( const char *name ); VipsOperation *vips_operation_new( const char *name );
int vips_call_required_optional( VipsOperation **operation,
va_list required, va_list optional );
int vips_call( const char *operation_name, ... ) int vips_call( const char *operation_name, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_call_split( const char *operation_name, va_list optional, ... ); int vips_call_split( const char *operation_name, va_list optional, ... );
int vips_call_split_option_string( const char *operation_name, int vips_call_split_option_string( const char *operation_name,
const char *option_string, va_list optional, ... ); const char *option_string, va_list optional, ... );
void vips_call_options( GOptionGroup *group, VipsOperation *operation ); void vips_call_options( GOptionGroup *group, VipsOperation *operation );
int vips_call_argv( VipsOperation *operation, int argc, char **argv ); int vips_call_argv( VipsOperation *operation, int argc, char **argv );
void vips_cache_drop_all( void ); void vips_cache_drop_all( void );
 End of changes. 6 change blocks. 
6 lines changed or deleted 6 lines changed or added


 private.h   private.h 
skipping to change at line 59 skipping to change at line 59
/* Private to iofuncs: add at least this many bytes above and below the win dow. /* Private to iofuncs: add at least this many bytes above and below the win dow.
* There's no point mapping just a few KB of a small image. * There's no point mapping just a few KB of a small image.
*/ */
#define VIPS__WINDOW_MARGIN_BYTES (1024 * 1024 * 10) #define VIPS__WINDOW_MARGIN_BYTES (1024 * 1024 * 10)
/* sizeof() a VIPS header on disc. /* sizeof() a VIPS header on disc.
*/ */
#define VIPS_SIZEOF_HEADER (64) #define VIPS_SIZEOF_HEADER (64)
/* Startup plus ABI check. /* Startup ABI check.
*/ */
int vips__init( const char *argv0 ); int vips__init( const char *argv0 );
size_t vips__get_sizeof_vipsobject( void ); size_t vips__get_sizeof_vipsobject( void );
/* What we track for each mmap window. Have a list of these on an openin /* What we track for each mmap window. Have a list of these on an openin
* VipsImage. * VipsImage.
*/ */
typedef struct { typedef struct {
int ref_count; /* # of regions referencing us */ int ref_count; /* # of regions referencing us */
struct _VipsImage *im; /* VipsImage we are attached to */ struct _VipsImage *im; /* VipsImage we are attached to */
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 resample.h   resample.h 
skipping to change at line 46 skipping to change at line 46
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
int vips_shrink( VipsImage *in, VipsImage **out, int vips_shrink( VipsImage *in, VipsImage **out,
double xshrink, double yshrink, ... ) double xshrink, double yshrink, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_similarity( VipsImage *in, VipsImage **out, ... ) int vips_similarity( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_resize( VipsImage *in, VipsImage **out, double scale, ... )
__attribute__((sentinel));
int vips_affine( VipsImage *in, VipsImage **out, int vips_affine( VipsImage *in, VipsImage **out,
double a, double b, double c, double d, ... ) double a, double b, double c, double d, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_quadratic( VipsImage *in, VipsImage **out, VipsImage *coeff, ... ) int vips_quadratic( VipsImage *in, VipsImage **out, VipsImage *coeff, ... )
__attribute__((sentinel)); __attribute__((sentinel));
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 threadpool.h   threadpool.h 
skipping to change at line 132 skipping to change at line 132
*/ */
typedef int (*VipsThreadpoolProgressFn)( void *a ); typedef int (*VipsThreadpoolProgressFn)( void *a );
int vips_threadpool_run( VipsImage *im, int vips_threadpool_run( VipsImage *im,
VipsThreadStartFn start, VipsThreadStartFn start,
VipsThreadpoolAllocateFn allocate, VipsThreadpoolAllocateFn allocate,
VipsThreadpoolWorkFn work, VipsThreadpoolWorkFn work,
VipsThreadpoolProgressFn progress, VipsThreadpoolProgressFn progress,
void *a ); void *a );
void vips_get_tile_size( VipsImage *im, void vips_get_tile_size( VipsImage *im,
int *tile_width, int *tile_height, int *nlines ); int *tile_width, int *tile_height, int *n_lines );
void vips_concurrency_set( int concurrency ); void vips_concurrency_set( int concurrency );
int vips_concurrency_get( void ); int vips_concurrency_get( void );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_THREADPOOL_H*/ #endif /*VIPS_THREADPOOL_H*/
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 type.h   type.h 
skipping to change at line 55 skipping to change at line 55
} VipsThing; } VipsThing;
/** /**
* VIPS_TYPE_THING: * VIPS_TYPE_THING:
* *
* The #GType for a #VipsThing. * The #GType for a #VipsThing.
*/ */
#define VIPS_TYPE_THING (vips_thing_get_type()) #define VIPS_TYPE_THING (vips_thing_get_type())
GType vips_thing_get_type( void ); GType vips_thing_get_type( void );
VipsThing *vips_thing_new( int i ); VipsThing *vips_thing_new( int i );
int vips_thing_get_i( VipsThing *thing );
/* A ref-counted area of memory. Can hold arrays of things as well. /* A ref-counted area of memory. Can hold arrays of things as well.
*/ */
typedef struct _VipsArea { typedef struct _VipsArea {
void *data; void *data;
size_t length; /* 0 if not known */ size_t length; /* 0 if not known */
/* If this area represents an array, the number of elements in the /* If this area represents an array, the number of elements in the
* array. Equal to length / sizeof(element). * array. Equal to length / sizeof(element).
*/ */
skipping to change at line 96 skipping to change at line 95
* convenience. * convenience.
*/ */
GType type; GType type;
size_t sizeof_type; size_t sizeof_type;
} VipsArea; } VipsArea;
VipsArea *vips_area_copy( VipsArea *area ); VipsArea *vips_area_copy( VipsArea *area );
void vips_area_unref( VipsArea *area ); void vips_area_unref( VipsArea *area );
VipsArea *vips_area_new( VipsCallbackFn free_fn, void *data ); VipsArea *vips_area_new( VipsCallbackFn free_fn, void *data );
VipsArea *vips_area_new_blob( VipsCallbackFn free_fn,
void *data, size_t length );
VipsArea *vips_area_new_array( GType type, size_t sizeof_type, int n ); VipsArea *vips_area_new_array( GType type, size_t sizeof_type, int n );
VipsArea *vips_area_new_array_object( int n ); VipsArea *vips_area_new_array_object( int n );
void *vips_area_get_data( VipsArea *area, void *vips_area_get_data( VipsArea *area,
size_t *length, int *n, GType *type, size_t *sizeof_type ); size_t *length, int *n, GType *type, size_t *sizeof_type );
#ifdef VIPS_DEBUG
#define VIPS_ARRAY_ADDR( X, I ) \
(((I) >= 0 && (I) < VIPS_AREA( X )->n) ? \
(VIPS_AREA( X )->data + VIPS_AREA( X )->sizeof_type * (I)) : \
(fprintf( stderr, \
"VIPS_ARRAY_ADDR: index out of bounds, " \
"file \"%s\", line %d\n" \
"(index %d should have been within [0,%d])\n", \
__FILE__, __LINE__, \
(I), VIPS_AREA( X )->n ), NULL ))
#else /*!VIPS_DEBUG*/
#define VIPS_ARRAY_ADDR( X, I ) \
(VIPS_AREA( X )->data + VIPS_AREA( X )->sizeof_type * (I))
#endif /*VIPS_DEBUG*/
/** /**
* VIPS_TYPE_AREA: * VIPS_TYPE_AREA:
* *
* The #GType for a #VipsArea. * The #GType for a #VipsArea.
*/ */
#define VIPS_TYPE_AREA (vips_area_get_type()) #define VIPS_TYPE_AREA (vips_area_get_type())
#define VIPS_AREA( X ) ((VipsArea *) (X))
GType vips_area_get_type( void ); GType vips_area_get_type( void );
/** /**
* VIPS_TYPE_SAVE_STRING: * VIPS_TYPE_SAVE_STRING:
* *
* The #GType for a #VipsSaveString. * The #GType for a #VipsSaveString.
*/ */
#define VIPS_TYPE_SAVE_STRING (vips_save_string_get_type()) #define VIPS_TYPE_SAVE_STRING (vips_save_string_get_type())
GType vips_save_string_get_type( void ); GType vips_save_string_get_type( void );
skipping to change at line 134 skipping to change at line 146
*/ */
#define VIPS_TYPE_REF_STRING (vips_ref_string_get_type()) #define VIPS_TYPE_REF_STRING (vips_ref_string_get_type())
GType vips_ref_string_get_type( void ); GType vips_ref_string_get_type( void );
/** /**
* VIPS_TYPE_BLOB: * VIPS_TYPE_BLOB:
* *
* The %GType for a #VipsBlob. * The %GType for a #VipsBlob.
*/ */
#define VIPS_TYPE_BLOB (vips_blob_get_type()) #define VIPS_TYPE_BLOB (vips_blob_get_type())
typedef struct _VipsBlob {
VipsArea area;
} VipsBlob;
VipsBlob *vips_blob_new( VipsCallbackFn free_fn,
const void *data, size_t size );
const void *vips_blob_get( VipsBlob *blob, size_t *size );
GType vips_blob_get_type( void ); GType vips_blob_get_type( void );
/** /**
* VIPS_TYPE_ARRAY_DOUBLE: * VIPS_TYPE_ARRAY_DOUBLE:
* *
* The #GType for a #VipsArrayDouble. * The #GType for a #VipsArrayDouble.
*/ */
#define VIPS_TYPE_ARRAY_DOUBLE (vips_array_double_get_type()) #define VIPS_TYPE_ARRAY_DOUBLE (vips_array_double_get_type())
typedef VipsArea VipsArrayDouble;
typedef struct _VipsArrayDouble {
VipsArea area;
} VipsArrayDouble;
VipsArrayDouble *vips_array_double_new( const double *array, int n ); VipsArrayDouble *vips_array_double_new( const double *array, int n );
VipsArrayDouble *vips_array_double_newv( int n, ... ); VipsArrayDouble *vips_array_double_newv( int n, ... );
double *vips_array_double_get( VipsArrayDouble *array, int *n );
GType vips_array_double_get_type( void ); GType vips_array_double_get_type( void );
/** /**
* VIPS_TYPE_ARRAY_INT: * VIPS_TYPE_ARRAY_INT:
* *
* The #GType for a #VipsArrayInt. * The #GType for a #VipsArrayInt.
*/ */
#define VIPS_TYPE_ARRAY_INT (vips_array_int_get_type()) #define VIPS_TYPE_ARRAY_INT (vips_array_int_get_type())
typedef VipsArea VipsArrayInt;
typedef struct _VipsArrayInt {
VipsArea area;
} VipsArrayInt;
VipsArrayInt *vips_array_int_new( const int *array, int n ); VipsArrayInt *vips_array_int_new( const int *array, int n );
VipsArrayInt *vips_array_int_newv( int n, ... ); VipsArrayInt *vips_array_int_newv( int n, ... );
int *vips_array_int_get( VipsArrayInt *array, int *n );
GType vips_array_int_get_type( void ); GType vips_array_int_get_type( void );
/** /**
* VIPS_TYPE_ARRAY_IMAGE: * VIPS_TYPE_ARRAY_IMAGE:
* *
* The #GType for a #VipsArrayImage. * The #GType for a #VipsArrayImage.
*/ */
#define VIPS_TYPE_ARRAY_IMAGE (vips_array_image_get_type()) #define VIPS_TYPE_ARRAY_IMAGE (vips_array_image_get_type())
typedef VipsArea VipsArrayImage;
typedef struct _VipsArrayImage {
VipsArea area;
} VipsArrayImage;
/* See image.h for vips_array_image_new() etc., they need to be declared af
ter
* VipsImage.
*/
GType vips_array_image_get_type( void ); GType vips_array_image_get_type( void );
void vips_value_set_area( GValue *value, VipsCallbackFn free_fn, void *data ); void vips_value_set_area( GValue *value, VipsCallbackFn free_fn, void *data );
void *vips_value_get_area( const GValue *value, size_t *length ); void *vips_value_get_area( const GValue *value, size_t *length );
const char *vips_value_get_save_string( const GValue *value ); const char *vips_value_get_save_string( const GValue *value );
void vips_value_set_save_string( GValue *value, const char *str ); void vips_value_set_save_string( GValue *value, const char *str );
void vips_value_set_save_stringf( GValue *value, const char *fmt, ... ) void vips_value_set_save_stringf( GValue *value, const char *fmt, ... )
__attribute__((format(printf, 2, 3))); __attribute__((format(printf, 2, 3)));
const char *vips_value_get_ref_string( const GValue *value, size_t *length ); const char *vips_value_get_ref_string( const GValue *value, size_t *length );
int vips_value_set_ref_string( GValue *value, const char *str ); void vips_value_set_ref_string( GValue *value, const char *str );
void *vips_value_get_blob( const GValue *value, size_t *length ); void *vips_value_get_blob( const GValue *value, size_t *length );
void vips_value_set_blob( GValue *value, void vips_value_set_blob( GValue *value,
VipsCallbackFn free_fn, void *data, size_t length ); VipsCallbackFn free_fn, void *data, size_t length );
void vips_value_set_array( GValue *value, void vips_value_set_array( GValue *value,
int n, GType type, size_t sizeof_type ); int n, GType type, size_t sizeof_type );
void *vips_value_get_array( const GValue *value, void *vips_value_get_array( const GValue *value,
int *n, GType *type, size_t *sizeof_type ); int *n, GType *type, size_t *sizeof_type );
double *vips_value_get_array_double( const GValue *value, int *n ); double *vips_value_get_array_double( const GValue *value, int *n );
int vips_value_set_array_double( GValue *value, const double *array, int n ); void vips_value_set_array_double( GValue *value, const double *array, int n );
int *vips_value_get_array_int( const GValue *value, int *n ); int *vips_value_get_array_int( const GValue *value, int *n );
int vips_value_set_array_int( GValue *value, const int *array, int n ); void vips_value_set_array_int( GValue *value, const int *array, int n );
GObject **vips_value_get_array_object( const GValue *value, int *n ); GObject **vips_value_get_array_object( const GValue *value, int *n );
int vips_value_set_array_object( GValue *value, int n ); void vips_value_set_array_object( GValue *value, int n );
/* See also image.h, that has vips_value_get_array_image() and /* See also image.h, that has vips_array_image_get(), vips_array_image_new(
* vips_value_set_array_image(). They need to be declared after VipsImage. ),
* vips_value_get_array_image() and vips_value_set_array_image(). They need
* to be declared after VipsImage.
*/ */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_TYPE_H*/ #endif /*VIPS_TYPE_H*/
 End of changes. 16 change blocks. 
13 lines changed or deleted 53 lines changed or added


 util.h   util.h 
skipping to change at line 168 skipping to change at line 168
#define VIPS_CLIP_NONE( V, SEQ ) {} #define VIPS_CLIP_NONE( V, SEQ ) {}
/* Not all platforms have PATH_MAX (eg. Hurd) and we don't need a platform one /* Not all platforms have PATH_MAX (eg. Hurd) and we don't need a platform one
* anyway, just a static buffer big enough for almost any path. * anyway, just a static buffer big enough for almost any path.
*/ */
#define VIPS_PATH_MAX (4096) #define VIPS_PATH_MAX (4096)
const char *vips_enum_string( GType enm, int value ); const char *vips_enum_string( GType enm, int value );
const char *vips_enum_nick( GType enm, int value ); const char *vips_enum_nick( GType enm, int value );
int vips_enum_from_nick( const char *domain, GType type, const char *str ); int vips_enum_from_nick( const char *domain, GType type, const char *str );
int vips_flags_from_nick( const char *domain, GType type, const char *nick );
gboolean vips_slist_equal( GSList *l1, GSList *l2 ); gboolean vips_slist_equal( GSList *l1, GSList *l2 );
void *vips_slist_map2( GSList *list, VipsSListMap2Fn fn, void *a, void *b ) ; void *vips_slist_map2( GSList *list, VipsSListMap2Fn fn, void *a, void *b ) ;
void *vips_slist_map2_rev( GSList *list, VipsSListMap2Fn fn, void *a, void *b ); void *vips_slist_map2_rev( GSList *list, VipsSListMap2Fn fn, void *a, void *b );
void *vips_slist_map4( GSList *list, void *vips_slist_map4( GSList *list,
VipsSListMap4Fn fn, void *a, void *b, void *c, void *d ); VipsSListMap4Fn fn, void *a, void *b, void *c, void *d );
void *vips_slist_fold2( GSList *list, void *start, void *vips_slist_fold2( GSList *list, void *start,
VipsSListFold2Fn fn, void *a, void *b ); VipsSListFold2Fn fn, void *a, void *b );
GSList *vips_slist_filter( GSList *list, VipsSListMap2Fn fn, void *a, void *b ); GSList *vips_slist_filter( GSList *list, VipsSListMap2Fn fn, void *a, void *b );
void vips_slist_free_all( GSList *list ); void vips_slist_free_all( GSList *list );
skipping to change at line 204 skipping to change at line 205
int vips_filename_suffix_match( const char *path, const char *suffixes[] ); int vips_filename_suffix_match( const char *path, const char *suffixes[] );
gint64 vips_file_length( int fd ); gint64 vips_file_length( int fd );
int vips__write( int fd, const void *buf, size_t count ); int vips__write( int fd, const void *buf, size_t count );
FILE *vips__file_open_read( const char *filename, FILE *vips__file_open_read( const char *filename,
const char *fallback_dir, gboolean text_mode ); const char *fallback_dir, gboolean text_mode );
FILE *vips__file_open_write( const char *filename, FILE *vips__file_open_write( const char *filename,
gboolean text_mode ); gboolean text_mode );
char *vips__file_read( FILE *fp, const char *name, unsigned int *length_out ); char *vips__file_read( FILE *fp, const char *name, size_t *length_out );
char *vips__file_read_name( const char *name, const char *fallback_dir, char *vips__file_read_name( const char *name, const char *fallback_dir,
unsigned int *length_out ); size_t *length_out );
int vips__file_write( void *data, size_t size, size_t nmemb, FILE *stream ) ; int vips__file_write( void *data, size_t size, size_t nmemb, FILE *stream ) ;
int vips__get_bytes( const char *filename, unsigned char buf[], int len ); int vips__get_bytes( const char *filename, unsigned char buf[], int len );
GValue *vips__gvalue_ref_string_new( const char *text ); GValue *vips__gvalue_ref_string_new( const char *text );
void vips__gslist_gvalue_free( GSList *list ); void vips__gslist_gvalue_free( GSList *list );
GSList *vips__gslist_gvalue_copy( const GSList *list ); GSList *vips__gslist_gvalue_copy( const GSList *list );
GSList *vips__gslist_gvalue_merge( GSList *a, const GSList *b ); GSList *vips__gslist_gvalue_merge( GSList *a, const GSList *b );
char *vips__gslist_gvalue_get( const GSList *list ); char *vips__gslist_gvalue_get( const GSList *list );
int vips__seek( int fd, gint64 pos ); int vips__seek( int fd, gint64 pos );
 End of changes. 3 change blocks. 
2 lines changed or deleted 3 lines changed or added


 version.h   version.h 
/* Macros for the header version. /* Macros for the header version.
*/ */
#ifndef VIPS_VERSION_H #ifndef VIPS_VERSION_H
#define VIPS_VERSION_H #define VIPS_VERSION_H
#define VIPS_VERSION "7.40.11" #define VIPS_VERSION "7.42.0"
#define VIPS_VERSION_STRING "7.40.11-Thu Oct 9 00:19:00 MSK 2014" #define VIPS_VERSION_STRING "7.42.0-Tue Nov 25 00:38:14 MSK 2014"
#define VIPS_MAJOR_VERSION (7) #define VIPS_MAJOR_VERSION (7)
#define VIPS_MINOR_VERSION (40) #define VIPS_MINOR_VERSION (42)
#define VIPS_MICRO_VERSION (11) #define VIPS_MICRO_VERSION (0)
/* Not really anything to do with versions, but this is a handy place to pu t /* Not really anything to do with versions, but this is a handy place to pu t
* it. * it.
*/ */
#define VIPS_EXEEXT "" #define VIPS_EXEEXT ""
#define VIPS_ENABLE_DEPRECATED 1
#endif /*VIPS_VERSION_H*/ #endif /*VIPS_VERSION_H*/
 End of changes. 3 change blocks. 
4 lines changed or deleted 5 lines changed or added


 vips.h   vips.h 
skipping to change at line 150 skipping to change at line 150
#include <vips/mosaicing.h> #include <vips/mosaicing.h>
#include <vips/histogram.h> #include <vips/histogram.h>
#include <vips/freqfilt.h> #include <vips/freqfilt.h>
#include <vips/resample.h> #include <vips/resample.h>
#include <vips/colour.h> #include <vips/colour.h>
#include <vips/draw.h> #include <vips/draw.h>
#include <vips/create.h> #include <vips/create.h>
#include <vips/video.h> #include <vips/video.h>
#include <vips/cimg_funcs.h> #include <vips/cimg_funcs.h>
#ifndef VIPS_DISABLE_VIPS7COMPAT /* This stuff is very, very old and should not be used by anyone now.
#include <vips/vips7compat.h> */
#endif /*VIPS_DISABLE_VIPS7COMPAT*/ #ifdef VIPS_ENABLE_ANCIENT
#ifdef VIPS_ENABLE_DEPRECATED
#include <vips/deprecated.h> #include <vips/deprecated.h>
#endif /*VIPS_ENABLE_DEPRECATED*/ #endif /*VIPS_ENABLE_ANCIENT*/
#include <vips/almostdeprecated.h> /* Still in use, but can be turned off.
*/
#if VIPS_ENABLE_DEPRECATED
#include <vips/vips7compat.h>
#include <vips/dispatch.h> #include <vips/dispatch.h>
#include <vips/almostdeprecated.h>
#endif /*VIPS_ENABLE_DEPRECATED*/
/* We can't use _ here since this will be compiled by our clients and they may /* We can't use _ here since this will be compiled by our clients and they may
* not have _(). * not have _().
*/ */
#define VIPS_INIT( ARGV0 ) \ #define VIPS_INIT( ARGV0 ) \
(sizeof( VipsObject ) != vips__get_sizeof_vipsobject() ? ( \ (sizeof( VipsObject ) != vips__get_sizeof_vipsobject() ? ( \
vips_info( "vips_init", "ABI mismatch" ), \ vips_info( "vips_init", "ABI mismatch" ), \
vips_info( "vips_init", \ vips_info( "vips_init", \
"library has sizeof(VipsObject) == %zd", \ "library has sizeof(VipsObject) == %zd", \
vips__get_sizeof_vipsobject() ), \ vips__get_sizeof_vipsobject() ), \
vips_info( "vips_init", \ vips_info( "vips_init", \
"application has sizeof(VipsObject) == %zd", \ "application has sizeof(VipsObject) == %zd", \
sizeof( VipsObject ) ), \ sizeof( VipsObject ) ), \
vips_error( "vips_init", "ABI mismatch" ), \ vips_error( "vips_init", "ABI mismatch" ), \
-1 ) : \ -1 ) : \
vips__init( ARGV0 )) vips_init( ARGV0 ))
int vips_init( const char *argv0 );
const char *vips_get_argv0( void ); const char *vips_get_argv0( void );
void vips_shutdown( void ); void vips_shutdown( void );
void vips_thread_shutdown( void ); void vips_thread_shutdown( void );
GOptionGroup *vips_get_option_group( void );
void vips_add_option_entries( GOptionGroup *option_group );
extern void vips_leak_set( gboolean leak );
const char *vips_version_string( void ); const char *vips_version_string( void );
int vips_version( int flag ); int vips_version( int flag );
const char *vips_guess_prefix( const char *argv0, const char *env_name ); const char *vips_guess_prefix( const char *argv0, const char *env_name );
const char *vips_guess_libdir( const char *argv0, const char *env_name ); const char *vips_guess_libdir( const char *argv0, const char *env_name );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
 End of changes. 6 change blocks. 
9 lines changed or deleted 17 lines changed or added


 vips7compat.h   vips7compat.h 
skipping to change at line 217 skipping to change at line 217
#define im_guess_prefix vips_guess_prefix #define im_guess_prefix vips_guess_prefix
#define im_guess_libdir vips_guess_libdir #define im_guess_libdir vips_guess_libdir
#define im__global_lock vips__global_lock #define im__global_lock vips__global_lock
int im_cp_desc(IMAGE *out, IMAGE *in ); int im_cp_desc(IMAGE *out, IMAGE *in );
int im_cp_descv (IMAGE * im, ...); int im_cp_descv (IMAGE * im, ...);
#define im_cp_desc_array(I, A) vips__image_copy_fields_array(I, A) #define im_cp_desc_array(I, A) vips__image_copy_fields_array(I, A)
int im_demand_hint (IMAGE * im, VipsDemandStyle hint, ...); int im_demand_hint (IMAGE * im, VipsDemandStyle hint, ...);
#define im_demand_hint_array( A, B, C ) (vips__demand_hint_array( A, B, C ) , 0) #define im_demand_hint_array( A, B, C ) (vips__demand_hint_array( A, B, C ) , 0)
#define im_image vips_image_new_from_memory #define im_image(P, W, H, B, F) \
vips_image_new_from_memory((P), 0, (W), (H), (B), (F))
#define im_binfile vips_image_new_from_file_raw #define im_binfile vips_image_new_from_file_raw
#define im__open_temp vips_image_new_temp_file #define im__open_temp vips_image_new_temp_file
#define im__test_kill( I ) (vips_image_get_kill( I )) #define im__test_kill( I ) (vips_image_get_kill( I ))
#define im__start_eval( I ) (vips_image_preeval( I ), vips_image_get_kill( I )) #define im__start_eval( I ) (vips_image_preeval( I ), vips_image_get_kill( I ))
#define im__handle_eval( I, W, H ) \ #define im__handle_eval( I, W, H ) \
(vips_image_eval( I, W, H ), vips_image_get_kill( I )) (vips_image_eval( I, W, H ), vips_image_get_kill( I ))
#define im__end_eval vips_image_posteval #define im__end_eval vips_image_posteval
#define im_invalidate vips_image_invalidate_all #define im_invalidate vips_image_invalidate_all
#define im_isfile vips_image_isfile #define im_isfile vips_image_isfile
#define im_printdesc( I ) vips_object_print_dump( VIPS_OBJECT( I ) ) #define im_printdesc( I ) vips_object_print_dump( VIPS_OBJECT( I ) )
skipping to change at line 269 skipping to change at line 271
#define im_image_sanity( I ) (!vips_object_sanity( VIPS_OBJECT( I ) )) #define im_image_sanity( I ) (!vips_object_sanity( VIPS_OBJECT( I ) ))
#define im_image_sanity_all vips_object_sanity_all #define im_image_sanity_all vips_object_sanity_all
#define im__print_all vips_object_print_all #define im__print_all vips_object_print_all
/* Compat functions. /* Compat functions.
*/ */
int im_init_world( const char *argv0 ); int im_init_world( const char *argv0 );
/* We used to have this in lowercase.
*/
#define vips_init(X) VIPS_INIT(X)
VipsImage *im_open( const char *filename, const char *mode ); VipsImage *im_open( const char *filename, const char *mode );
VipsImage *im_open_local( VipsImage *parent, VipsImage *im_open_local( VipsImage *parent,
const char *filename, const char *mode ); const char *filename, const char *mode );
int im_open_local_array( VipsImage *parent, int im_open_local_array( VipsImage *parent,
VipsImage **images, int n, const char *filename, const char *mode ); VipsImage **images, int n, const char *filename, const char *mode );
#define im_callback_fn VipsCallbackFn #define im_callback_fn VipsCallbackFn
int im_add_callback( VipsImage *im, int im_add_callback( VipsImage *im,
skipping to change at line 449 skipping to change at line 447
#define im_check_imask vips_check_imask #define im_check_imask vips_check_imask
#define im_check_dmask vips_check_dmask #define im_check_dmask vips_check_dmask
#define vips_bandfmt_isint vips_band_format_isint #define vips_bandfmt_isint vips_band_format_isint
#define vips_bandfmt_isuint vips_band_format_isuint #define vips_bandfmt_isuint vips_band_format_isuint
#define vips_bandfmt_isfloat vips_band_format_isfloat #define vips_bandfmt_isfloat vips_band_format_isfloat
#define vips_bandfmt_iscomplex vips_band_format_iscomplex #define vips_bandfmt_iscomplex vips_band_format_iscomplex
#define im__change_suffix vips__change_suffix #define im__change_suffix vips__change_suffix
int vips_check_coding_labq( const char *domain, VipsImage *im );
int vips_check_coding_rad( const char *domain, VipsImage *im );
int vips_check_bands_3ormore( const char *domain, VipsImage *im );
/* Buffer processing. /* Buffer processing.
*/ */
typedef void (*im_wrapone_fn)( void *in, void *out, int width, typedef void (*im_wrapone_fn)( void *in, void *out, int width,
void *a, void *b ); void *a, void *b );
int im_wrapone( VipsImage *in, VipsImage *out, int im_wrapone( VipsImage *in, VipsImage *out,
im_wrapone_fn fn, void *a, void *b ); im_wrapone_fn fn, void *a, void *b );
typedef void (*im_wraptwo_fn)( void *in1, void *in2, void *out, typedef void (*im_wraptwo_fn)( void *in1, void *in2, void *out,
int width, void *a, void *b ); int width, void *a, void *b );
int im_wraptwo( VipsImage *in1, VipsImage *in2, VipsImage *out, int im_wraptwo( VipsImage *in1, VipsImage *in2, VipsImage *out,
skipping to change at line 1014 skipping to change at line 1008
int im_freqflt( VipsImage *in, VipsImage *mask, VipsImage *out ); int im_freqflt( VipsImage *in, VipsImage *mask, VipsImage *out );
int im_disp_ps( VipsImage *in, VipsImage *out ); int im_disp_ps( VipsImage *in, VipsImage *out );
int im_fractsurf( VipsImage *out, int size, double frd ); int im_fractsurf( VipsImage *out, int size, double frd );
int im_phasecor_fft( VipsImage *in1, VipsImage *in2, VipsImage *out ); int im_phasecor_fft( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_cntlines( VipsImage *im, double *nolines, int flag ); int im_cntlines( VipsImage *im, double *nolines, int flag );
int im_label_regions( VipsImage *test, VipsImage *mask, int *segments ); int im_label_regions( VipsImage *test, VipsImage *mask, int *segments );
int im_rank( VipsImage *in, VipsImage *out, int width, int height, int inde x ); int im_rank( VipsImage *in, VipsImage *out, int width, int height, int inde x );
int im_zerox( VipsImage *in, VipsImage *out, int sign ); int im_zerox( VipsImage *in, VipsImage *out, int sign );
int im_benchmarkn( VipsImage *in, VipsImage *out, int n );
int im_benchmark2( VipsImage *in, double *out );
int im_draw_circle( VipsImage *image, int im_draw_circle( VipsImage *image,
int x, int y, int radius, gboolean fill, VipsPel *ink ); int x, int y, int radius, gboolean fill, VipsPel *ink );
int im_draw_mask( VipsImage *image, int im_draw_mask( VipsImage *image,
VipsImage *mask_im, int x, int y, VipsPel *ink ); VipsImage *mask_im, int x, int y, VipsPel *ink );
int im_draw_image( VipsImage *image, VipsImage *sub, int x, int y ); int im_draw_image( VipsImage *image, VipsImage *sub, int x, int y );
int im_draw_rect( VipsImage *image, int im_draw_rect( VipsImage *image,
int left, int top, int width, int height, int fill, VipsPel *ink ); int left, int top, int width, int height, int fill, VipsPel *ink );
typedef int (*VipsPlotFn)( VipsImage *image, int x, int y,
void *a, void *b, void *c );
int im_draw_line_user( VipsImage *image, int im_draw_line_user( VipsImage *image,
int x1, int y1, int x2, int y2, int x1, int y1, int x2, int y2,
VipsPlotFn plot, void *a, void *b, void *c ); VipsPlotFn plot, void *a, void *b, void *c );
int im_draw_line( VipsImage *image, int im_draw_line( VipsImage *image,
int x1, int y1, int x2, int y2, VipsPel *ink ); int x1, int y1, int x2, int y2, VipsPel *ink );
int im_lineset( VipsImage *in, VipsImage *out, VipsImage *mask, VipsImage * ink, int im_lineset( VipsImage *in, VipsImage *out, VipsImage *mask, VipsImage * ink,
int n, int *x1v, int *y1v, int *x2v, int *y2v ); int n, int *x1v, int *y1v, int *x2v, int *y2v );
int im_insertset( VipsImage *main, VipsImage *sub, VipsImage *out, int n, i
nt *x, int *y );
int im_draw_flood( VipsImage *image, int x, int y, VipsPel *ink, VipsRect * dout ); int im_draw_flood( VipsImage *image, int x, int y, VipsPel *ink, VipsRect * dout );
int im_draw_flood_blob( VipsImage *image, int im_draw_flood_blob( VipsImage *image,
int x, int y, VipsPel *ink, VipsRect *dout ); int x, int y, VipsPel *ink, VipsRect *dout );
int im_draw_flood_other( VipsImage *image, VipsImage *test, int im_draw_flood_other( VipsImage *image, VipsImage *test,
int x, int y, int serial, VipsRect *dout ); int x, int y, int serial, VipsRect *dout );
int im_draw_point( VipsImage *image, int x, int y, VipsPel *ink ); int im_draw_point( VipsImage *image, int x, int y, VipsPel *ink );
int im_read_point( VipsImage *image, int x, int y, VipsPel *ink ); int im_read_point( VipsImage *image, int x, int y, VipsPel *ink );
int im_draw_smudge( VipsImage *image, int im_draw_smudge( VipsImage *image,
skipping to change at line 1106 skipping to change at line 1108
int balancetype, int balancetype,
int mwidth ); int mwidth );
int im_tbmosaic1( VipsImage *ref, VipsImage *sec, VipsImage *out, int im_tbmosaic1( VipsImage *ref, VipsImage *sec, VipsImage *out,
int bandno, int bandno,
int xr1, int yr1, int xs1, int ys1, int xr1, int yr1, int xs1, int ys1,
int xr2, int yr2, int xs2, int ys2, int xr2, int yr2, int xs2, int ys2,
int hwindowsize, int hsearchsize, int hwindowsize, int hsearchsize,
int balancetype, int balancetype,
int mwidth ); int mwidth );
int im_correl( VipsImage *ref, VipsImage *sec,
int xref, int yref, int xsec, int ysec,
int hwindowsize, int hsearchsize,
double *correlation, int *x, int *y );
int im_align_bands( VipsImage *in, VipsImage *out );
int im_maxpos_subpel( VipsImage *in, double *x, double *y );
/* These were public for a while, keep for compat. /* These were public for a while, keep for compat.
*/ */
int vips_foreign_load( const char *filename, VipsImage **out, ... ) int vips_foreign_load( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_foreign_save( VipsImage *in, const char *filename, ... ) int vips_foreign_save( VipsImage *in, const char *filename, ... )
__attribute__((sentinel)); __attribute__((sentinel));
VipsImage *vips__deprecated_open_read( const char *filename, gboolean seque
ntial );
VipsImage *vips__deprecated_open_write( const char *filename );
void im__format_init( void );
void im__tiff_register( void );
void im__jpeg_register( void );
void im__png_register( void );
void im__csv_register( void );
void im__ppm_register( void );
void im__analyze_register( void );
void im__exr_register( void );
void im__magick_register( void );
int im__bandup( const char *domain, VipsImage *in, VipsImage *out, int n );
int im__bandalike_vec( const char *domain, VipsImage **in, VipsImage **out,
int n );
int im__bandalike( const char *domain,
VipsImage *in1, VipsImage *in2, VipsImage *out1, VipsImage *out2 );
int im__formatalike_vec( VipsImage **in, VipsImage **out, int n );
int im__formatalike( VipsImage *in1, VipsImage *in2, VipsImage *out1, VipsI
mage *out2 );
int im__sizealike_vec( VipsImage **in, VipsImage **out, int n );
int im__sizealike( VipsImage *in1, VipsImage *in2,
VipsImage *out1, VipsImage *out2 );
int im__arith_binary( const char *domain,
VipsImage *in1, VipsImage *in2, VipsImage *out,
int format_table[10],
im_wrapmany_fn fn, void *b );
int im__arith_binary_const( const char *domain,
VipsImage *in, VipsImage *out,
int n, double *c, VipsBandFormat vfmt,
int format_table[10],
im_wrapone_fn fn1, im_wrapone_fn fnn );
int im__value( VipsImage *im, double *value );
typedef int (*im__wrapscan_fn)( void *p, int n, void *seq, void *a, void *b
);
int im__wrapscan( VipsImage *in,
VipsStartFn start, im__wrapscan_fn scan, VipsStopFn stop,
void *a, void *b );
int im__colour_difference( const char *domain,
VipsImage *in1, VipsImage *in2, VipsImage *out,
im_wrapmany_fn buffer_fn, void *a, void *b );
int im__colour_unary( const char *domain,
VipsImage *in, VipsImage *out, VipsInterpretation interpretation,
im_wrapone_fn buffer_fn, void *a, void *b );
VipsImage **im__insert_base( const char *domain,
VipsImage *in1, VipsImage *in2, VipsImage *out );
int im__find_lroverlap( VipsImage *ref_in, VipsImage *sec_in, VipsImage *ou
t,
int bandno_in,
int xref, int yref, int xsec, int ysec,
int halfcorrelation, int halfarea,
int *dx0, int *dy0,
double *scale1, double *angle1, double *dx1, double *dy1 );
int im__find_tboverlap( VipsImage *ref_in, VipsImage *sec_in, VipsImage *ou
t,
int bandno_in,
int xref, int yref, int xsec, int ysec,
int halfcorrelation, int halfarea,
int *dx0, int *dy0,
double *scale1, double *angle1, double *dx1, double *dy1 );
int im__find_best_contrast( VipsImage *image,
int xpos, int ypos, int xsize, int ysize,
int xarray[], int yarray[], int cont[],
int nbest, int hcorsize );
int im__balance( VipsImage *ref, VipsImage *sec, VipsImage *out,
VipsImage **ref_out, VipsImage **sec_out, int dx, int dy, int balanc
etype );
void imb_LCh2Lab( float *, float *, int );
/* A colour temperature.
*/
typedef struct {
double X0, Y0, Z0;
} im_colour_temperature;
void imb_XYZ2Lab( float *, float *, int, im_colour_temperature * );
void imb_LabS2Lab( signed short *, float *, int );
void imb_Lab2LabS( float *, signed short *, int n );
void vips__Lab2LabQ_vec( VipsPel *out, float *in, int width );
void vips__LabQ2Lab_vec( float *out, VipsPel *in, int width );
void im_copy_dmask_matrix( DOUBLEMASK *mask, double **matrix );
void im_copy_matrix_dmask( double **matrix, DOUBLEMASK *mask );
int *im_ivector();
float *im_fvector();
double *im_dvector();
void im_free_ivector();
void im_free_fvector();
void im_free_dvector();
int **im_imat_alloc();
float **im_fmat_alloc();
double **im_dmat_alloc();
void im_free_imat();
void im_free_fmat();
void im_free_dmat();
int im_invmat( double **, int );
int *im_offsets45( int size );
int im_conv_f_raw( VipsImage *in, VipsImage *out, DOUBLEMASK *mask );
int im_convsep_f_raw( VipsImage *in, VipsImage *out, DOUBLEMASK *mask );
int im_greyc_mask( VipsImage *in, VipsImage *out, VipsImage *mask,
int iterations, float amplitude, float sharpness, float anisotropy,
float alpha, float sigma, float dl, float da, float gauss_prec,
int interpolation, int fast_approx );
int vips_check_imask( const char *domain, INTMASK *mask );
int vips_check_dmask( const char *domain, DOUBLEMASK *mask );
int vips_check_dmask_1d( const char *domain, DOUBLEMASK *mask );
GOptionGroup *vips_get_option_group( void );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_VIPS7COMPAT_H*/ #endif /*VIPS_VIPS7COMPAT_H*/
 End of changes. 8 change blocks. 
9 lines changed or deleted 143 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/