VImage.h   VImage.h 
skipping to change at line 259 skipping to change at line 259
int Length(); int Length();
TCompression Compression(); TCompression Compression();
short Level(); short Level();
int Xoffset(); int Xoffset();
int Yoffset(); int Yoffset();
// Derived fields // Derived fields
const char *filename(); const char *filename();
const char *Hist(); const char *Hist();
// need the hough circle stuff for the rode python GUI
VImage hough_circle( int scale, int min_radius, int max_radius ) thr
ow( VError );
// metadata // metadata
#ifndef SWIG #ifndef SWIG
// base functionality // base functionality
// we don't wrap GValue, so we can't wrap these for now // we don't wrap GValue, so we can't wrap these for now
void meta_set( const char *field, GValue *value ) throw( VError ); void meta_set( const char *field, GValue *value ) throw( VError );
void meta_get( const char *field, GValue *value_copy ) throw( VError ); void meta_get( const char *field, GValue *value_copy ) throw( VError );
#endif /*SWIG*/ #endif /*SWIG*/
// We can wrap these, fwiw // We can wrap these, fwiw
gboolean meta_remove( const char *field ); gboolean meta_remove( const char *field );
 End of changes. 1 change blocks. 
0 lines changed or deleted 4 lines changed or added


 arithmetic.h   arithmetic.h 
skipping to change at line 177 skipping to change at line 177
* See also: vips_complexget(). * See also: vips_complexget().
*/ */
typedef enum { typedef enum {
VIPS_OPERATION_COMPLEXGET_REAL, VIPS_OPERATION_COMPLEXGET_REAL,
VIPS_OPERATION_COMPLEXGET_IMAG, VIPS_OPERATION_COMPLEXGET_IMAG,
VIPS_OPERATION_COMPLEXGET_LAST VIPS_OPERATION_COMPLEXGET_LAST
} VipsOperationComplexget; } VipsOperationComplexget;
int vips_add( VipsImage *left, VipsImage *right, VipsImage **out, ... ) int vips_add( VipsImage *left, VipsImage *right, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_sum( VipsImage **in, VipsImage **out, int n, ... )
__attribute__((sentinel));
int vips_subtract( VipsImage *in1, VipsImage *in2, VipsImage **out, ... ) int vips_subtract( VipsImage *in1, VipsImage *in2, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_multiply( VipsImage *left, VipsImage *right, VipsImage **out, ... ) int vips_multiply( VipsImage *left, VipsImage *right, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_divide( VipsImage *left, VipsImage *right, VipsImage **out, ... ) int vips_divide( VipsImage *left, VipsImage *right, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_linear( VipsImage *in, VipsImage **out, int vips_linear( VipsImage *in, VipsImage **out,
double *a, double *b, int n, ... ) double *a, double *b, int n, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_linear1( VipsImage *in, VipsImage **out, double a, double b, ... ) int vips_linear1( VipsImage *in, VipsImage **out, double a, double b, ... )
skipping to change at line 380 skipping to change at line 382
int vips_deviate( VipsImage *in, double *out, ... ) int vips_deviate( VipsImage *in, double *out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_min( VipsImage *in, double *out, ... ) int vips_min( VipsImage *in, double *out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_max( VipsImage *in, double *out, ... ) int vips_max( VipsImage *in, double *out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_stats( VipsImage *in, VipsImage **out, ... ) int vips_stats( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_measure( VipsImage *in, VipsImage **out, int h, int v, ... ) int vips_measure( VipsImage *in, VipsImage **out, int h, int v, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_getpoint( VipsImage *in, double **vector, int *n, int x, int y, ..
. )
__attribute__((sentinel));
int vips_hist_find( VipsImage *in, VipsImage **out, ... ) int vips_hist_find( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_hist_find_ndim( VipsImage *in, VipsImage **out, ... ) int vips_hist_find_ndim( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_hist_find_indexed( VipsImage *in, VipsImage *index, int vips_hist_find_indexed( VipsImage *in, VipsImage *index,
VipsImage **out, ... ) VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_hough_line( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_hough_circle( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_project( VipsImage *in, VipsImage **columns, VipsImage **rows, ... ) int vips_project( VipsImage *in, VipsImage **columns, VipsImage **rows, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_profile( VipsImage *in, VipsImage **columns, VipsImage **rows, ... ) int vips_profile( VipsImage *in, VipsImage **columns, VipsImage **rows, ... )
__attribute__((sentinel)); __attribute__((sentinel));
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_ARITHMETIC_H*/ #endif /*IM_ARITHMETIC_H*/
 End of changes. 3 change blocks. 
0 lines changed or deleted 9 lines changed or added


 enumtypes.h   enumtypes.h 
skipping to change at line 24 skipping to change at line 24
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_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;
#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;
#define VIPS_TYPE_OPERATION_MATH2 (vips_operation_math2_get_type()) #define VIPS_TYPE_OPERATION_MATH2 (vips_operation_math2_get_type())
GType vips_operation_round_get_type (void) G_GNUC_CONST; GType vips_operation_round_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_ROUND (vips_operation_round_get_type()) #define VIPS_TYPE_OPERATION_ROUND (vips_operation_round_get_type())
GType vips_operation_relational_get_type (void) G_GNUC_CONST; GType vips_operation_relational_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_RELATIONAL (vips_operation_relational_get_type( )) #define VIPS_TYPE_OPERATION_RELATIONAL (vips_operation_relational_get_type( ))
GType vips_operation_boolean_get_type (void) G_GNUC_CONST; GType vips_operation_boolean_get_type (void) G_GNUC_CONST;
skipping to change at line 84 skipping to change at line 86
GType vips_operation_flags_get_type (void) G_GNUC_CONST; GType vips_operation_flags_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_FLAGS (vips_operation_flags_get_type()) #define VIPS_TYPE_OPERATION_FLAGS (vips_operation_flags_get_type())
/* enumerations from "../../../libvips/include/vips/convolution.h" */ /* enumerations from "../../../libvips/include/vips/convolution.h" */
GType vips_precision_get_type (void) G_GNUC_CONST; GType vips_precision_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_PRECISION (vips_precision_get_type()) #define VIPS_TYPE_PRECISION (vips_precision_get_type())
GType vips_combine_get_type (void) G_GNUC_CONST; GType vips_combine_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_COMBINE (vips_combine_get_type()) #define VIPS_TYPE_COMBINE (vips_combine_get_type())
/* enumerations from "../../../libvips/include/vips/morphology.h" */ /* enumerations from "../../../libvips/include/vips/morphology.h" */
GType vips_operation_morphology_get_type (void) G_GNUC_CONST; GType vips_operation_morphology_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_MORPHOLOGY (vips_operation_morphology_get_type( )) #define VIPS_TYPE_OPERATION_MORPHOLOGY (vips_operation_morphology_get_type( ))
/* enumerations from "../../../libvips/include/vips/draw.h" */
GType vips_combine_mode_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_COMBINE_MODE (vips_combine_mode_get_type())
/* enumerations from "../../../libvips/include/vips/object.h" */ /* enumerations from "../../../libvips/include/vips/object.h" */
GType vips_argument_flags_get_type (void) G_GNUC_CONST; GType vips_argument_flags_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_ARGUMENT_FLAGS (vips_argument_flags_get_type()) #define VIPS_TYPE_ARGUMENT_FLAGS (vips_argument_flags_get_type())
G_END_DECLS G_END_DECLS
#endif /*VIPS_ENUM_TYPES_H*/ #endif /*VIPS_ENUM_TYPES_H*/
/* Generated data ends here */ /* Generated data ends here */
 End of changes. 2 change blocks. 
0 lines changed or deleted 6 lines changed or added


 error.h   error.h 
skipping to change at line 52 skipping to change at line 52
void vips_error_thaw( void ); void vips_error_thaw( void );
void vips_error( const char *domain, const char *fmt, ... ) void vips_error( const char *domain, const char *fmt, ... )
__attribute__((format(printf, 2, 3))); __attribute__((format(printf, 2, 3)));
void vips_verror( const char *domain, const char *fmt, va_list ap ); void vips_verror( const char *domain, const char *fmt, va_list ap );
void vips_error_system( int err, const char *domain, const char *fmt, ... ) void vips_error_system( int err, const char *domain, const char *fmt, ... )
__attribute__((format(printf, 3, 4))); __attribute__((format(printf, 3, 4)));
void vips_verror_system( int err, const char *domain, void vips_verror_system( int err, const char *domain,
const char *fmt, va_list ap ); const char *fmt, va_list ap );
void vips_error_g( GError **error ); void vips_error_g( GError **error );
void vips_g_error( GError **error );
void vips_warn( const char *domain, const char *fmt, ... ) void vips_warn( const char *domain, const char *fmt, ... )
__attribute__((format(printf, 2, 3))); __attribute__((format(printf, 2, 3)));
void vips_vwarn( const char *domain, const char *fmt, va_list ap ); void vips_vwarn( const char *domain, const char *fmt, va_list ap );
void vips_info( const char *domain, const char *fmt, ... ) void vips_info( const char *domain, const char *fmt, ... )
__attribute__((format(printf, 2, 3))); __attribute__((format(printf, 2, 3)));
void vips_vinfo( const char *domain, const char *fmt, va_list ap ); void vips_vinfo( const char *domain, const char *fmt, va_list ap );
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)));
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 foreign.h   foreign.h 
skipping to change at line 164 skipping to change at line 164
/*< 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 * );
/* Is a buffer in this format.
*
* This function should return %TRUE if the buffer contains an image
of
* this type.
*/
gboolean (*is_a_buffer)( void *, size_t );
/* 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 * );
skipping to change at line 210 skipping to change at line 217
* *
* 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 * );
} 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_options( const char *filename ); const char *vips_foreign_find_load_buffer( void *buf, size_t len );
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 303 skipping to change at line 310
* only save NONE, so has NONE TRUE and RAD and LABQ FALSE. * only save NONE, so has NONE TRUE and RAD and LABQ FALSE.
* *
* Default NONE TRUE, RAD and LABQ FALSE. * Default NONE TRUE, RAD and LABQ FALSE.
*/ */
gboolean coding[VIPS_CODING_LAST]; gboolean coding[VIPS_CODING_LAST];
} VipsForeignSaveClass; } VipsForeignSaveClass;
GType vips_foreign_save_get_type( void ); GType vips_foreign_save_get_type( void );
const char *vips_foreign_find_save( const char *filename ); const char *vips_foreign_find_save( const char *filename );
const char *vips_foreign_find_save_options( const char *filename ); const char *vips_foreign_find_save_buffer( const char *suffix );
/* Read/write an image convenience functions.
*/
int vips_foreign_load( const char *filename, VipsImage **out, ... )
__attribute__((sentinel));
int vips_foreign_save( VipsImage *in, const char *filename, ... )
__attribute__((sentinel));
int vips_foreign_load_options( const char *filename, VipsImage **out, ... )
__attribute__((sentinel));
int vips_foreign_save_options( VipsImage *in, const char *filename, ... )
__attribute__((sentinel));
int vips_openslideload( const char *filename, VipsImage **out, ... ) int vips_openslideload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_jpegload( const char *filename, VipsImage **out, ... ) int vips_jpegload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_jpegload_buffer( void *buf, size_t len, VipsImage **out, ... ) int vips_jpegload_buffer( void *buf, size_t len, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_jpegsave( VipsImage *in, const char *filename, ... ) int vips_jpegsave( VipsImage *in, const char *filename, ... )
skipping to change at line 400 skipping to change at line 395
* Use inches or centimeters as the resolution unit for a tiff file. * Use inches or centimeters as the resolution unit for a tiff file.
*/ */
typedef enum { typedef enum {
VIPS_FOREIGN_TIFF_RESUNIT_CM, VIPS_FOREIGN_TIFF_RESUNIT_CM,
VIPS_FOREIGN_TIFF_RESUNIT_INCH, VIPS_FOREIGN_TIFF_RESUNIT_INCH,
VIPS_FOREIGN_TIFF_RESUNIT_LAST VIPS_FOREIGN_TIFF_RESUNIT_LAST
} VipsForeignTiffResunit; } VipsForeignTiffResunit;
int vips_tiffload( const char *filename, VipsImage **out, ... ) int vips_tiffload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_tiffload_buffer( void *buf, size_t len, VipsImage **out, ... )
__attribute__((sentinel));
int vips_tiffsave( VipsImage *in, const char *filename, ... ) int vips_tiffsave( VipsImage *in, const char *filename, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_openexrload( const char *filename, VipsImage **out, ... ) int vips_openexrload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_fitsload( const char *filename, VipsImage **out, ... ) int vips_fitsload( const char *filename, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_fitssave( VipsImage *in, const char *filename, ... ) int vips_fitssave( VipsImage *in, const char *filename, ... )
__attribute__((sentinel)); __attribute__((sentinel));
skipping to change at line 489 skipping to change at line 486
* *
* How many pyramid layers to create. * How many pyramid layers to create.
*/ */
typedef enum { typedef enum {
VIPS_FOREIGN_DZ_DEPTH_1PIXEL, VIPS_FOREIGN_DZ_DEPTH_1PIXEL,
VIPS_FOREIGN_DZ_DEPTH_1TILE, VIPS_FOREIGN_DZ_DEPTH_1TILE,
VIPS_FOREIGN_DZ_DEPTH_1, VIPS_FOREIGN_DZ_DEPTH_1,
VIPS_FOREIGN_DZ_DEPTH_LAST VIPS_FOREIGN_DZ_DEPTH_LAST
} VipsForeignDzDepth; } VipsForeignDzDepth;
/**
* VipsForeignDzContainer:
* @VIPS_FOREIGN_DZ_CONTAINER_FS: write tiles to the filesystem
* @VIPS_FOREIGN_DZ_CONTAINER_ZIP: write tiles to a zip file
*
* How many pyramid layers to create.
*/
typedef enum {
VIPS_FOREIGN_DZ_CONTAINER_FS,
VIPS_FOREIGN_DZ_CONTAINER_ZIP,
VIPS_FOREIGN_DZ_CONTAINER_LAST
} VipsForeignDzContainer;
int vips_dzsave( VipsImage *in, const char *basename, ... ) int vips_dzsave( VipsImage *in, const char *basename, ... )
__attribute__((sentinel)); __attribute__((sentinel));
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_FOREIGN_H*/ #endif /*VIPS_FOREIGN_H*/
 End of changes. 5 change blocks. 
14 lines changed or deleted 25 lines changed or added


 image.h   image.h 
skipping to change at line 403 skipping to change at line 403
((VIPS_IMAGE( I )->BandFmt == VIPS_FORMAT_DOUBLE && \ ((VIPS_IMAGE( I )->BandFmt == VIPS_FORMAT_DOUBLE && \
VIPS_IMAGE( I )->Bands == 1) ? \ VIPS_IMAGE( I )->Bands == 1) ? \
((double *) VIPS_IMAGE_ADDR( I, X, Y )) : \ ((double *) VIPS_IMAGE_ADDR( I, X, Y )) : \
(fprintf( stderr, "VIPS_MATRIX: not a matrix image\n" ), \ (fprintf( stderr, "VIPS_MATRIX: not a matrix image\n" ), \
(double *) NULL)) (double *) NULL))
#else /*!VIPS_DEBUG*/ #else /*!VIPS_DEBUG*/
#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*/
int vips_image_written( VipsImage *image );
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_preeval( VipsImage *image );
void vips_image_eval( VipsImage *image, guint64 processed );
void vips_image_posteval( VipsImage *image );
void vips_image_set_progress( VipsImage *image, gboolean progress ); void vips_image_set_progress( VipsImage *image, gboolean progress );
gboolean vips_image_iskilled( VipsImage *image );
void vips_image_set_kill( VipsImage *image, gboolean kill );
VipsImage *vips_image_new( void ); VipsImage *vips_image_new( void );
VipsImage *vips_image_new_mode( const char *filename, const char *mode ); VipsImage *vips_image_new_memory( void );
VipsImage *vips_image_new_buffer( void ); VipsImage *vips_image_new_from_file( const char *name, ... )
VipsImage *vips_image_new_from_file( const char *filename ); __attribute__((sentinel));
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 *buffer,
int xsize, int ysize, int bands, VipsBandFormat bandfmt ); int xsize, int ysize, int bands, VipsBandFormat bandfmt );
VipsImage *vips_image_new_from_buffer( void *buf, size_t len,
const char *option_string, ... )
__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, ... );
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 );
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 *filename, ... )
__attribute__((sentinel));
int vips_image_write_to_buffer( VipsImage *in,
const char *name, void **buf, size_t *len, ... )
__attribute__((sentinel));
int vips_image_write_to_memory( VipsImage *in,
void **buf_out, size_t *len_out );
int vips_image_decode_predict( VipsImage *im,
int *bands, VipsBandFormat *format );
int vips_image_decode( VipsImage *in, VipsImage **out );
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 );
int vips_image_pio_output( VipsImage *image );
int vips_image_inplace( VipsImage *image ); int vips_image_inplace( VipsImage *image );
int vips_image_write_prepare( VipsImage *image ); int vips_image_write_prepare( VipsImage *image );
int vips_image_write_line( VipsImage *image, int ypos, VipsPel *linebuffer ); int vips_image_write_line( VipsImage *image, int ypos, VipsPel *linebuffer );
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.
*/
VipsImage **vips_value_get_array_image( const GValue *value, int *n );
int vips_value_set_array_image( GValue *value, VipsImage **array, int n );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_IMAGE_H*/ #endif /*VIPS_IMAGE_H*/
 End of changes. 9 change blocks. 
12 lines changed or deleted 26 lines changed or added


 morphology.h   morphology.h 
skipping to change at line 53 skipping to change at line 53
VIPS_OPERATION_MORPHOLOGY_DILATE, VIPS_OPERATION_MORPHOLOGY_DILATE,
VIPS_OPERATION_MORPHOLOGY_LAST VIPS_OPERATION_MORPHOLOGY_LAST
} VipsOperationMorphology; } VipsOperationMorphology;
int vips_morph( VipsImage *in, VipsImage **out, VipsImage *mask, int vips_morph( VipsImage *in, VipsImage **out, VipsImage *mask,
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, ... )
__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_median( VipsImage *in, VipsImage **out, int size, ... ) int vips_labelregions( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int im_label_regions( VipsImage *test, VipsImage *mask, int *segments );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_MORPHOLOGY_H*/ #endif /*VIPS_MORPHOLOGY_H*/
 End of changes. 3 change blocks. 
3 lines changed or deleted 3 lines changed or added


 mosaicing.h   mosaicing.h 
skipping to change at line 41 skipping to change at line 41
*/ */
#ifndef IM_MOSAICING_H #ifndef IM_MOSAICING_H
#define IM_MOSAICING_H #define IM_MOSAICING_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#include <vips/vips.h> int vips_merge( VipsImage *ref, VipsImage *sec, VipsImage **out,
VipsDirection direction, int dx, int dy, ... )
int im_match_linear( VipsImage *ref, VipsImage *sec, VipsImage *out, __attribute__((sentinel));
int xr1, int yr1, int xs1, int ys1, int vips_mosaic( VipsImage *ref, VipsImage *sec, VipsImage **out,
int xr2, int yr2, int xs2, int ys2 ); VipsDirection direction, int xref, int yref, int xsec, int ysec, ...
int im_match_linear_search( VipsImage *ref, VipsImage *sec, VipsImage *out, )
int xr1, int yr1, int xs1, int ys1, __attribute__((sentinel));
int xr2, int yr2, int xs2, int ys2,
int hwindowsize, int hsearchsize ); int vips_mosaic1( VipsImage *ref, VipsImage *sec, VipsImage **out,
VipsDirection direction,
int im_lrmerge( VipsImage *ref, VipsImage *sec, VipsImage *out, int xr1, int yr1, int xs1, int ys1,
int dx, int dy, int mwidth ); int xr2, int yr2, int xs2, int ys2, ... )
int im_tbmerge( VipsImage *ref, VipsImage *sec, VipsImage *out, __attribute__((sentinel));
int dx, int dy, int mwidth );
int vips_match( VipsImage *ref, VipsImage *sec, VipsImage **out,
int xr1, int yr1, int xs1, int ys1,
int xr2, int yr2, int xs2, int ys2, ... )
__attribute__((sentinel));
int vips_globalbalance( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_remosaic( VipsImage *in, VipsImage **out,
const char *old_str, const char *new_str, ... )
__attribute__((sentinel));
int im_lrmerge1( VipsImage *ref, VipsImage *sec, VipsImage *out, #include <vips/vips.h>
int xr1, int yr1, int xs1, int ys1,
int xr2, int yr2, int xs2, int ys2,
int mwidth );
int im_tbmerge1( VipsImage *ref, VipsImage *sec, VipsImage *out,
int xr1, int yr1, int xs1, int ys1,
int xr2, int yr2, int xs2, int ys2,
int mwidth );
int im_lrmosaic( VipsImage *ref, VipsImage *sec, VipsImage *out,
int bandno,
int xref, int yref, int xsec, int ysec,
int hwindowsize, int hsearchsize,
int balancetype,
int mwidth );
int im_tbmosaic( VipsImage *ref, VipsImage *sec, VipsImage *out,
int bandno,
int xref, int yref, int xsec, int ysec,
int hwindowsize, int hsearchsize,
int balancetype,
int mwidth );
int im_lrmosaic1( VipsImage *ref, VipsImage *sec, VipsImage *out,
int bandno,
int xr1, int yr1, int xs1, int ys1,
int xr2, int yr2, int xs2, int ys2,
int hwindowsize, int hsearchsize,
int balancetype,
int mwidth );
int im_tbmosaic1( VipsImage *ref, VipsImage *sec, VipsImage *out,
int bandno,
int xr1, int yr1, int xs1, int ys1,
int xr2, int yr2, int xs2, int ys2,
int hwindowsize, int hsearchsize,
int balancetype,
int mwidth );
int im_global_balance( VipsImage *in, VipsImage *out, double gamma );
int im_global_balancef( VipsImage *in, VipsImage *out, double gamma );
int im_correl( VipsImage *ref, VipsImage *sec, int im_correl( VipsImage *ref, VipsImage *sec,
int xref, int yref, int xsec, int ysec, int xref, int yref, int xsec, int ysec,
int hwindowsize, int hsearchsize, int hwindowsize, int hsearchsize,
double *correlation, int *x, int *y ); double *correlation, int *x, int *y );
int im_remosaic( VipsImage *in, VipsImage *out,
const char *old_str, const char *new_str );
int im_align_bands( VipsImage *in, VipsImage *out ); int im_align_bands( VipsImage *in, VipsImage *out );
int im_maxpos_subpel( VipsImage *in, double *x, double *y ); 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. 3 change blocks. 
55 lines changed or deleted 25 lines changed or added


 object.h   object.h 
skipping to change at line 58 skipping to change at line 58
#else /*!VIPS_DEBUG*/ #else /*!VIPS_DEBUG*/
#define VIPS_UNREF( X ) VIPS_FREEF( g_object_unref, (X) ) #define VIPS_UNREF( X ) VIPS_FREEF( g_object_unref, (X) )
#endif /*VIPS_DEBUG*/ #endif /*VIPS_DEBUG*/
typedef struct _VipsObject VipsObject; typedef struct _VipsObject VipsObject;
typedef struct _VipsObjectClass VipsObjectClass; typedef struct _VipsObjectClass VipsObjectClass;
/* Track extra stuff for arguments to objects /* Track extra stuff for arguments to objects
*/ */
/**
* VipsArgumentFlags:
* @VIPS_ARGUMENT_NONE: no flags
* @VIPS_ARGUMENT_REQUIRED: must be set in the constructor
* @VIPS_ARGUMENT_CONSTRUCT: can only be set in the constructor
* @VIPS_ARGUMENT_SET_ONCE: can only be set once
* @VIPS_ARGUMENT_SET_ALWAYS: don't do use-before-set checks
* @VIPS_ARGUMENT_INPUT: is an input argument (one we depend on)
* @VIPS_ARGUMENT_OUTPUT: is an output argument (depends on us)
* @VIPS_ARGUMENT_DEPRECATED: just there for back-compat, hide
*
* Flags we associate with each object argument.
*
* Have separate input & output flags. Both set is an error; neither set is
OK.
*
* Input gobjects are automatically reffed, output gobjects automatically r
ef
* us. We also automatically watch for "destroy" and unlink.
*
* @VIPS_ARGUMENT_SET_ALWAYS is handy for arguments which are set from C. F
or
* example, VipsImage::width is a property that gives access to the Xsize
* member of struct _VipsImage. We default its 'assigned' to TRUE
* since the field is always set directly by C.
*
* @VIPS_ARGUMENT_DEPRECATED arguments are not shown in help text, are not
* looked for if required, are not checked for "have-been-set". You can
* deprecate a required argument, but you must obviously add a new required
* argument if you do.
*/
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
} VipsArgumentFlags; } VipsArgumentFlags;
skipping to change at line 314 skipping to change at line 286
VipsObject *object; VipsObject *object;
/* Has been set. /* Has been set.
*/ */
gboolean assigned; gboolean assigned;
/* If this is an output argument, keep the id of our "close" handler /* If this is an output argument, keep the id of our "close" handler
* here. * here.
*/ */
gulong close_id; gulong close_id;
/* We need to listen for "invalidate" on input images and send our o
wn
* "invalidate" out. If we go, we need to disconnect.
*/
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( VipsArgumentClass *,
VipsObject * ); VipsObject * );
VipsArgument *vips__argument_table_lookup( VipsArgumentTable *, VipsArgument *vips__argument_table_lookup( VipsArgumentTable *,
skipping to change at line 335 skipping to change at line 312
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 *, GParamSpec *,
VipsArgumentClass *, VipsArgumentInstance *, void *a, void *b ); VipsArgumentClass *, VipsArgumentInstance *, 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 *, GParamSpec *,
VipsArgumentClass *, void *a, void *b ); VipsArgumentClass *, 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 );
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 );
int vips_object_get_argument_priority( VipsObject *object, const char *name ); int vips_object_get_argument_priority( VipsObject *object, const char *name );
/* We have to loop over an objects args in several places, and we can't alw ays /* We have to loop over an objects args in several places, and we can't alw ays
skipping to change at line 464 skipping to change at line 442
/* The pre/post/close callbacks are all fire-once. /* The pre/post/close callbacks are all fire-once.
*/ */
gboolean preclose; gboolean preclose;
gboolean close; gboolean close;
gboolean postclose; gboolean postclose;
/* Total memory allocated relative to this object, handy for /* Total memory allocated relative to this object, handy for
* profiling. * profiling.
*/ */
size_t local_memory; size_t local_memory;
}; };
struct _VipsObjectClass { struct _VipsObjectClass {
GObjectClass parent_class; GObjectClass parent_class;
/* Build the object ... all argument properties have been set, /* Build the object ... all argument properties have been set,
* now build the thing. * now build the thing.
*/ */
int (*build)( VipsObject *object ); int (*build)( VipsObject *object );
/* Just after build ... the object is fully ready for work.
*/
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 *, VipsBuf * );
/* 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 *, VipsBuf * );
skipping to change at line 564 skipping to change at line 547
VipsArgumentTable *argument_table; VipsArgumentTable *argument_table;
/* A sorted (by priority) list of the VipsArgumentClass for this cla ss /* A sorted (by priority) list of the VipsArgumentClass for this cla ss
* and any superclasses. This is small and specific to this class. * and any superclasses. This is small and specific to this class.
* *
* Use the stored GType to work out when to restart the list for a * Use the stored GType to work out when to restart the list for a
* subclass. * subclass.
*/ */
GSList *argument_table_traverse; GSList *argument_table_traverse;
GType argument_table_traverse_gtype; GType argument_table_traverse_gtype;
/* This class is deprecated and therefore hidden from various UI bit
s.
*
* VipsOperation has a deprecated flag, use that in preference to th
is
* if you can.
*/
gboolean deprecated;
/* Reserved for future expansion.
*/
void (*_vips_reserved1)( void );
void (*_vips_reserved2)( void );
void (*_vips_reserved3)( void );
void (*_vips_reserved4)( void );
}; };
gboolean vips_value_is_null( GParamSpec *psoec, const GValue *value ); gboolean vips_value_is_null( GParamSpec *psoec, const GValue *value );
void vips_object_set_property( GObject *gobject, void vips_object_set_property( GObject *gobject,
guint property_id, const GValue *value, GParamSpec *pspec ); guint property_id, const GValue *value, GParamSpec *pspec );
void vips_object_get_property( GObject *gobject, void vips_object_get_property( GObject *gobject,
guint property_id, GValue *value, GParamSpec *pspec ); guint property_id, GValue *value, GParamSpec *pspec );
void vips_object_preclose( VipsObject *object ); void vips_object_preclose( VipsObject *object );
int vips_object_build( VipsObject *object ); int vips_object_build( VipsObject *object );
skipping to change at line 605 skipping to change at line 602
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 *, void *, void * );
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 );
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, void * );
typedef void *(*VipsTypeMap2Fn)( GType, void *, void * ); typedef void *(*VipsTypeMap2Fn)( GType, void *, void * );
typedef void *(*VipsClassMapFn)( VipsObjectClass *, void * ); typedef void *(*VipsClassMapFn)( VipsObjectClass *, void * );
 End of changes. 7 change blocks. 
31 lines changed or deleted 29 lines changed or added


 operation.h   operation.h 
skipping to change at line 44 skipping to change at line 44
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#include <vips/vips.h> #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
} 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 ) \
(G_TYPE_CHECK_INSTANCE_CAST( (obj), \ (G_TYPE_CHECK_INSTANCE_CAST( (obj), \
VIPS_TYPE_OPERATION, VipsOperation )) VIPS_TYPE_OPERATION, VipsOperation ))
#define VIPS_OPERATION_CLASS( klass ) \ #define VIPS_OPERATION_CLASS( klass ) \
(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 ) \
skipping to change at line 67 skipping to change at line 68
(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 * );
typedef struct _VipsOperation { typedef struct _VipsOperation {
VipsObject parent_instance; VipsObject parent_instance;
/* When we added this operation to cache .. used to find LRU for
* flush.
*/
int time;
/* 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;
skipping to change at line 94 skipping to change at line 90
VipsObjectClass parent_class; VipsObjectClass parent_class;
/* Print the usage message. /* Print the usage message.
*/ */
void (*usage)( struct _VipsOperationClass *, VipsBuf * ); void (*usage)( struct _VipsOperationClass *, VipsBuf * );
/* Return a set of operation flags. /* Return a set of operation flags.
*/ */
VipsOperationFlags (*get_flags)( VipsOperation * ); VipsOperationFlags (*get_flags)( VipsOperation * );
VipsOperationFlags flags; VipsOperationFlags flags;
/* One of our input images has signalled "invalidate". The cache use
s
* VipsOperation::invalidate to drop dirty ops.
*/
void (*invalidate)( VipsOperation * );
} 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 );
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( 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,
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 );
int vips_cache_operation_buildp( VipsOperation **operation ); int vips_cache_operation_buildp( VipsOperation **operation );
VipsOperation *vips_cache_operation_build( VipsOperation *operation ); VipsOperation *vips_cache_operation_build( VipsOperation *operation );
void vips_cache_print( void ); void vips_cache_print( void );
void vips_cache_set_max( int max ); void vips_cache_set_max( int max );
void vips_cache_set_max_mem( size_t max_mem ); void vips_cache_set_max_mem( size_t max_mem );
 End of changes. 5 change blocks. 
6 lines changed or deleted 11 lines changed or added


 private.h   private.h 
skipping to change at line 92 skipping to change at line 92
int vips_window_unref( VipsWindow *window ); int vips_window_unref( VipsWindow *window );
void vips_window_print( VipsWindow *window ); void vips_window_print( VipsWindow *window );
/* Per-thread buffer state. Held in a GPrivate. /* Per-thread buffer state. Held in a GPrivate.
*/ */
typedef struct { typedef struct {
GHashTable *hash; /* VipsImage -> VipsBufferCache* */ GHashTable *hash; /* VipsImage -> VipsBufferCache* */
GThread *thread; /* Just for sanity checking */ GThread *thread; /* Just for sanity checking */
} VipsBufferThread; } VipsBufferThread;
/* Per-image buffer cache. Hash to this from VipsBufferCache. /* Per-image buffer cache. Hash to this from VipsBufferThread::hash.
* We can't store the GSList directly in the hash table, as GHashTable lack * We can't store the GSList directly in the hash table as GHashTable lacks
s an an
* update operation and we'd need to _remove() and _insert() on every list * update operation and we'd need to _remove() and _insert() on every list
* operation. * operation.
*/ */
typedef struct _VipsBufferCache { typedef struct _VipsBufferCache {
GSList *buffers; /* GSList of VipsBuffer* */ GSList *buffers; /* GSList of VipsBuffer* */
GThread *thread; /* Just for sanity checking */ GThread *thread; /* Just for sanity checking */
struct _VipsImage *im; struct _VipsImage *im;
VipsBufferThread *buffer_thread; VipsBufferThread *buffer_thread;
GSList *reserve; /* VipsBuffer kept in reserve */ GSList *reserve; /* VipsBuffer kept in reserve */
int n_reserve; /* Number in reserve */ int n_reserve; /* Number in reserve */
skipping to change at line 130 skipping to change at line 130
void vips_buffer_dump_all( void ); void vips_buffer_dump_all( void );
void vips_buffer_done( VipsBuffer *buffer ); void vips_buffer_done( VipsBuffer *buffer );
void vips_buffer_undone( VipsBuffer *buffer ); void vips_buffer_undone( VipsBuffer *buffer );
void vips_buffer_unref( VipsBuffer *buffer ); void vips_buffer_unref( VipsBuffer *buffer );
VipsBuffer *vips_buffer_new( struct _VipsImage *im, VipsRect *area ); VipsBuffer *vips_buffer_new( struct _VipsImage *im, VipsRect *area );
VipsBuffer *vips_buffer_ref( struct _VipsImage *im, VipsRect *area ); VipsBuffer *vips_buffer_ref( struct _VipsImage *im, VipsRect *area );
VipsBuffer *vips_buffer_unref_ref( VipsBuffer *buffer, VipsBuffer *vips_buffer_unref_ref( VipsBuffer *buffer,
struct _VipsImage *im, VipsRect *area ); struct _VipsImage *im, VipsRect *area );
void vips_buffer_print( VipsBuffer *buffer ); void vips_buffer_print( VipsBuffer *buffer );
void vips__render_shutdown( void );
/* Sections of region.h that are private to VIPS. /* Sections of region.h that are private to VIPS.
*/ */
/* Region types. /* Region types.
*/ */
typedef enum _RegionType { typedef enum _RegionType {
VIPS_REGION_NONE, VIPS_REGION_NONE,
VIPS_REGION_BUFFER, /* A VipsBuffer */ VIPS_REGION_BUFFER, /* A VipsBuffer */
VIPS_REGION_OTHER_REGION, /* Memory on another region */ VIPS_REGION_OTHER_REGION, /* Memory on another region */
VIPS_REGION_OTHER_IMAGE, /* Memory on another image */ VIPS_REGION_OTHER_IMAGE, /* Memory on another image */
 End of changes. 2 change blocks. 
3 lines changed or deleted 5 lines changed or added


 region.h   region.h 
skipping to change at line 123 skipping to change at line 123
void vips_region_paint_pel( VipsRegion *reg, VipsRect *r, VipsPel *ink ); void vips_region_paint_pel( VipsRegion *reg, VipsRect *r, VipsPel *ink );
void vips_region_black( VipsRegion *reg ); void vips_region_black( VipsRegion *reg );
void vips_region_copy( VipsRegion *reg, VipsRegion *dest, void vips_region_copy( VipsRegion *reg, VipsRegion *dest,
VipsRect *r, int x, int y ); VipsRect *r, int x, int y );
int vips_region_prepare( VipsRegion *reg, VipsRect *r ); int vips_region_prepare( VipsRegion *reg, VipsRect *r );
int vips_region_prepare_to( VipsRegion *reg, int vips_region_prepare_to( VipsRegion *reg,
VipsRegion *dest, VipsRect *r, int x, int y ); VipsRegion *dest, VipsRect *r, int x, int y );
int vips_region_prepare_many( VipsRegion **reg, VipsRect *r ); int vips_region_prepare_many( VipsRegion **reg, VipsRect *r );
void vips_region_invalidate( VipsRegion *reg );
void vips_region_dump_all( void ); void vips_region_dump_all( void );
/* Macros on VipsRegion. /* Macros on VipsRegion.
* VIPS_REGION_LSKIP() add to move down line * VIPS_REGION_LSKIP() add to move down line
* VIPS_REGION_N_ELEMENTS() number of elements across region * VIPS_REGION_N_ELEMENTS() number of elements across region
* VIPS_REGION_SIZEOF_LINE() sizeof width of region * VIPS_REGION_SIZEOF_LINE() sizeof width of region
* VIPS_REGION_ADDR() address of pixel in region * VIPS_REGION_ADDR() address of pixel in region
*/ */
#define VIPS_REGION_LSKIP( R ) \ #define VIPS_REGION_LSKIP( R ) \
((size_t)((R)->bpl)) ((size_t)((R)->bpl))
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 type.h   type.h 
skipping to change at line 165 skipping to change at line 165
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, ... );
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;
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)));
skipping to change at line 196 skipping to change at line 197
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 ); int 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 ); int 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 ); int vips_value_set_array_object( GValue *value, int n );
/* See also image.h, that has vips_value_get_array_image() and
* vips_value_set_array_image(). They need to be declared after VipsImage.
*/
void vips__meta_init_types( void ); void vips__meta_init_types( void );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_TYPE_H*/ #endif /*VIPS_TYPE_H*/
 End of changes. 2 change blocks. 
0 lines changed or deleted 5 lines changed or added


 util.h   util.h 
skipping to change at line 189 skipping to change at line 189
void *vips_hash_table_map( GHashTable *hash, void *vips_hash_table_map( GHashTable *hash,
VipsSListMap2Fn fn, void *a, void *b ); VipsSListMap2Fn fn, void *a, void *b );
char *vips_strncpy( char *dest, const char *src, int n ); char *vips_strncpy( char *dest, const char *src, int n );
char *vips_strrstr( const char *haystack, const char *needle ); char *vips_strrstr( const char *haystack, const char *needle );
gboolean vips_ispostfix( const char *a, const char *b ); gboolean vips_ispostfix( const char *a, const char *b );
gboolean vips_isprefix( const char *a, const char *b ); gboolean vips_isprefix( const char *a, const char *b );
char *vips_break_token( char *str, const char *brk ); char *vips_break_token( char *str, const char *brk );
void vips__chomp( char *str );
int vips_vsnprintf( char *str, size_t size, const char *format, va_list ap ); int vips_vsnprintf( char *str, size_t size, const char *format, va_list ap );
int vips_snprintf( char *str, size_t size, const char *format, ... ) int vips_snprintf( char *str, size_t size, const char *format, ... )
__attribute__((format(printf, 3, 4))); __attribute__((format(printf, 3, 4)));
void vips_filename_split( const char *path, char *name, char *mode );
const char *vips_skip_dir( const char *filename );
void vips_filename_suffix( const char *path, char *suffix );
int vips_filename_suffix_match( const char *path, const char *suffixes[] ); int vips_filename_suffix_match( const char *path, const char *suffixes[] );
char *vips_getnextoption( char **in );
char *vips_getsuboption( const char *buf );
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, unsigned int *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,
skipping to change at line 225 skipping to change at line 222
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 );
int vips__ftruncate( int fd, gint64 pos ); int vips__ftruncate( int fd, gint64 pos );
int vips_existsf( const char *name, ... ) int vips_existsf( const char *name, ... )
__attribute__((format(printf, 1, 2))); __attribute__((format(printf, 1, 2)));
int vips_mkdirf( const char *name, ... ) int vips_mkdirf( const char *name, ... )
__attribute__((format(printf, 1, 2))); __attribute__((format(printf, 1, 2)));
int vips_rmdirf( const char *name, ... )
__attribute__((format(printf, 1, 2)));
int vips_rename( const char *old_name, const char *new_name );
FILE *vips_popenf( const char *fmt, const char *mode, ... ) FILE *vips_popenf( const char *fmt, const char *mode, ... )
__attribute__((format(printf, 1, 3))); __attribute__((format(printf, 1, 3)));
/** /**
* VipsToken: * VipsToken:
* @VIPS_TOKEN_LEFT: left bracket * @VIPS_TOKEN_LEFT: left bracket
* @VIPS_TOKEN_RIGHT: right bracket * @VIPS_TOKEN_RIGHT: right bracket
* @VIPS_TOKEN_STRING: string constant * @VIPS_TOKEN_STRING: string constant
* @VIPS_TOKEN_EQUALS: equals sign * @VIPS_TOKEN_EQUALS: equals sign
* @VIPS_TOKEN_COMMA: comma * @VIPS_TOKEN_COMMA: comma
skipping to change at line 260 skipping to change at line 260
VIPS_TOKEN_COMMA VIPS_TOKEN_COMMA
} VipsToken; } VipsToken;
const char *vips__token_get( const char *buffer, const char *vips__token_get( const char *buffer,
VipsToken *token, char *string, int size ); VipsToken *token, char *string, int size );
const char *vips__token_must( const char *buffer, VipsToken *token, const char *vips__token_must( const char *buffer, VipsToken *token,
char *string, int size ); char *string, int size );
const char *vips__token_need( const char *buffer, VipsToken need_token, const char *vips__token_need( const char *buffer, VipsToken need_token,
char *string, int size ); char *string, int size );
const char *vips__find_rightmost_brackets( const char *p ); const char *vips__find_rightmost_brackets( const char *p );
void vips__filename_split8( const char *name,
char *filename, char *option_string );
int vips_ispoweroftwo( int p ); int vips_ispoweroftwo( int p );
int vips_amiMSBfirst( void ); int vips_amiMSBfirst( void );
char *vips__temp_name( const char *format ); char *vips__temp_name( const char *format );
void vips__change_suffix( const char *name, char *out, int mx, void vips__change_suffix( const char *name, char *out, int mx,
const char *new_suff, const char **olds, int nolds ); const char *new_suff, const char **olds, int nolds );
#ifdef __cplusplus #ifdef __cplusplus
 End of changes. 5 change blocks. 
5 lines changed or deleted 7 lines changed or added


 vector.h   vector.h 
skipping to change at line 53 skipping to change at line 53
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#define VIPS_VECTOR_SOURCE_MAX (10) #define VIPS_VECTOR_SOURCE_MAX (10)
/* An Orc program. /* An Orc program.
*/ */
typedef struct { typedef struct {
/* Handy for debugging. /* Handy for debugging.
*/ */
const char *name; const char *name;
char *unique_name;
/* How many resources we've used so far in this codegen. /* How many resources we've used so far in this codegen.
*/ */
int n_temp; int n_temp;
int n_scanline; int n_scanline;
int n_source; int n_source;
int n_destination; int n_destination;
int n_constant; int n_constant;
int n_parameter; int n_parameter;
int n_instruction; int n_instruction;
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 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.38.6" #define VIPS_VERSION "7.40.0"
#define VIPS_VERSION_STRING "7.38.6-Thu Jun 19 00:03:32 MSK 2014" #define VIPS_VERSION_STRING "7.40.0-Wed Jun 25 00:04:27 MSK 2014"
#define VIPS_MAJOR_VERSION (7) #define VIPS_MAJOR_VERSION (7)
#define VIPS_MINOR_VERSION (38) #define VIPS_MINOR_VERSION (40)
#define VIPS_MICRO_VERSION (6) #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 ""
#endif /*VIPS_VERSION_H*/ #endif /*VIPS_VERSION_H*/
 End of changes. 2 change blocks. 
4 lines changed or deleted 4 lines changed or added


 vips.h   vips.h 
skipping to change at line 98 skipping to change at line 98
#include <glib-object.h> #include <glib-object.h>
/* If we're being parsed by SWIG, remove gcc attributes. /* If we're being parsed by SWIG, remove gcc attributes.
*/ */
#ifdef SWIG #ifdef SWIG
# ifndef __attribute__ # ifndef __attribute__
# define __attribute__(x) /*NOTHING*/ # define __attribute__(x) /*NOTHING*/
# endif # endif
#endif /*SWIG*/ #endif /*SWIG*/
/* Or if this isn't gcc.
*/
#ifndef __GNUC__
# ifndef __attribute__
# define __attribute__(x) /*NOTHING*/
# endif
#endif /*__GNUC__*/
#include <vips/basic.h> #include <vips/basic.h>
#include <vips/buf.h> #include <vips/buf.h>
#include <vips/util.h> #include <vips/util.h>
#include <vips/object.h> #include <vips/object.h>
#include <vips/type.h> #include <vips/type.h>
#include <vips/gate.h> #include <vips/gate.h>
#include <vips/version.h> #include <vips/version.h>
#include <vips/rect.h> #include <vips/rect.h>
skipping to change at line 137 skipping to change at line 145
#include <vips/arithmetic.h> #include <vips/arithmetic.h>
#include <vips/relational.h> #include <vips/relational.h>
#include <vips/conversion.h> #include <vips/conversion.h>
#include <vips/convolution.h> #include <vips/convolution.h>
#include <vips/morphology.h> #include <vips/morphology.h>
#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/inplace.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 #ifndef VIPS_DISABLE_VIPS7COMPAT
#include <vips/vips7compat.h> #include <vips/vips7compat.h>
#endif /*VIPS_DISABLE_VIPS7COMPAT*/ #endif /*VIPS_DISABLE_VIPS7COMPAT*/
#ifdef VIPS_ENABLE_DEPRECATED #ifdef VIPS_ENABLE_DEPRECATED
#include <vips/deprecated.h> #include <vips/deprecated.h>
 End of changes. 2 change blocks. 
1 lines changed or deleted 9 lines changed or added


 vips7compat.h   vips7compat.h 
skipping to change at line 551 skipping to change at line 551
#define im_slist_free_all vips_slist_free_all #define im_slist_free_all vips_slist_free_all
#define im_map_equal vips_map_equal #define im_map_equal vips_map_equal
#define im_hash_table_map vips_hash_table_map #define im_hash_table_map vips_hash_table_map
#define im_strncpy vips_strncpy #define im_strncpy vips_strncpy
#define im_strrstr vips_strrstr #define im_strrstr vips_strrstr
#define im_ispostfix vips_ispostfix #define im_ispostfix vips_ispostfix
#define im_isprefix vips_isprefix #define im_isprefix vips_isprefix
#define im_break_token vips_break_token #define im_break_token vips_break_token
#define im_vsnprintf vips_vsnprintf #define im_vsnprintf vips_vsnprintf
#define im_snprintf vips_snprintf #define im_snprintf vips_snprintf
#define im_filename_split vips_filename_split
#define im_skip_dir vips_skip_dir
#define im_filename_suffix vips_filename_suffix
#define im_filename_suffix_match vips_filename_suffix_match
#define im_getnextoption vips_getnextoption
#define im_getsuboption vips_getsuboption
#define im_file_length vips_file_length #define im_file_length vips_file_length
#define im__write vips__write #define im__write vips__write
#define im__file_open_read vips__file_open_read #define im__file_open_read vips__file_open_read
#define im__file_open_write vips__file_open_write #define im__file_open_write vips__file_open_write
#define im__file_read vips__file_read #define im__file_read vips__file_read
#define im__file_read_name vips__file_read_name #define im__file_read_name vips__file_read_name
#define im__file_write vips__file_write #define im__file_write vips__file_write
#define im__get_bytes vips__get_bytes #define im__get_bytes vips__get_bytes
#define im__gvalue_ref_string_new vips__gvalue_ref_string_new #define im__gvalue_ref_string_new vips__gvalue_ref_string_new
#define im__gslist_gvalue_free vips__gslist_gvalue_free #define im__gslist_gvalue_free vips__gslist_gvalue_free
skipping to change at line 786 skipping to change at line 780
int im_imask2vips( INTMASK *in, VipsImage *out ); int im_imask2vips( INTMASK *in, VipsImage *out );
int im_bandmean( VipsImage *in, VipsImage *out ); int im_bandmean( VipsImage *in, VipsImage *out );
int im_recomb( VipsImage *in, VipsImage *out, DOUBLEMASK *recomb ); int im_recomb( VipsImage *in, VipsImage *out, DOUBLEMASK *recomb );
int im_argb2rgba( VipsImage *in, VipsImage *out ); int im_argb2rgba( VipsImage *in, VipsImage *out );
int im_falsecolour( VipsImage *in, VipsImage *out ); int im_falsecolour( VipsImage *in, VipsImage *out );
int im_gammacorrect( VipsImage *in, VipsImage *out, double exponent ); int im_gammacorrect( VipsImage *in, VipsImage *out, double exponent );
int im_tile_cache_random( IMAGE *in, IMAGE *out,
int tile_width, int tile_height, int max_tiles );
int im_shrink( VipsImage *in, VipsImage *out, double xshrink, double yshrin k ); int im_shrink( VipsImage *in, VipsImage *out, double xshrink, double yshrin k );
int im_affinei( VipsImage *in, VipsImage *out, int im_affinei( VipsImage *in, VipsImage *out,
VipsInterpolate *interpolate, VipsInterpolate *interpolate,
double a, double b, double c, double d, double dx, double dy, double a, double b, double c, double d, double dx, double dy,
int ox, int oy, int ow, int oh ); int ox, int oy, int ow, int oh );
int im_affinei_all( VipsImage *in, VipsImage *out, VipsInterpolate *interpo late, int im_affinei_all( VipsImage *in, VipsImage *out, VipsInterpolate *interpo late,
double a, double b, double c, double d, double dx, double dy ) ; double a, double b, double c, double d, double dx, double dy ) ;
int im_rightshift_size( VipsImage *in, VipsImage *out, int im_rightshift_size( VipsImage *in, VipsImage *out,
int xshift, int yshift, int band_fmt ); int xshift, int yshift, int band_fmt );
skipping to change at line 1001 skipping to change at line 998
int im_fwfft( VipsImage *in, VipsImage *out ); int im_fwfft( VipsImage *in, VipsImage *out );
int im_invfft( VipsImage *in, VipsImage *out ); int im_invfft( VipsImage *in, VipsImage *out );
int im_invfftr( VipsImage *in, VipsImage *out ); int im_invfftr( VipsImage *in, VipsImage *out );
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_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_draw_circle( VipsImage *image,
int x, int y, int radius, gboolean fill, VipsPel *ink );
int im_draw_mask( VipsImage *image,
VipsImage *mask_im, int x, int y, VipsPel *ink );
int im_draw_image( VipsImage *image, VipsImage *sub, int x, int y );
int im_draw_rect( VipsImage *image,
int left, int top, int width, int height, int fill, VipsPel *ink );
int im_draw_line_user( VipsImage *image,
int x1, int y1, int x2, int y2,
VipsPlotFn plot, void *a, void *b, void *c );
int im_draw_line( VipsImage *image,
int x1, int y1, int x2, int y2, VipsPel *ink );
int im_lineset( VipsImage *in, VipsImage *out, VipsImage *mask, VipsImage *
ink,
int n, int *x1v, int *y1v, int *x2v, int *y2v );
int im_draw_flood( VipsImage *image, int x, int y, VipsPel *ink, VipsRect *
dout );
int im_draw_flood_blob( VipsImage *image,
int x, int y, VipsPel *ink, VipsRect *dout );
int im_draw_flood_other( VipsImage *image, VipsImage *test,
int x, int y, int serial, VipsRect *dout );
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_draw_smudge( VipsImage *image,
int left, int top, int width, int height );
void im_filename_split( const char *path, char *name, char *mode );
const char *im_skip_dir( const char *filename );
void im_filename_suffix( const char *path, char *suffix );
int im_filename_suffix_match( const char *path, const char *suffixes[] );
char *im_getnextoption( char **in );
char *im_getsuboption( const char *buf );
int im_lrmerge( VipsImage *ref, VipsImage *sec, VipsImage *out,
int dx, int dy, int mwidth );
int im_tbmerge( VipsImage *ref, VipsImage *sec, VipsImage *out,
int dx, int dy, int mwidth );
int im_lrmosaic( VipsImage *ref, VipsImage *sec, VipsImage *out,
int bandno,
int xref, int yref, int xsec, int ysec,
int hwindowsize, int hsearchsize,
int balancetype,
int mwidth );
int im_tbmosaic( VipsImage *ref, VipsImage *sec, VipsImage *out,
int bandno,
int xref, int yref, int xsec, int ysec,
int hwindowsize, int hsearchsize,
int balancetype,
int mwidth );
int im_match_linear( VipsImage *ref, VipsImage *sec, VipsImage *out,
int xr1, int yr1, int xs1, int ys1,
int xr2, int yr2, int xs2, int ys2 );
int im_match_linear_search( VipsImage *ref, VipsImage *sec, VipsImage *out,
int xr1, int yr1, int xs1, int ys1,
int xr2, int yr2, int xs2, int ys2,
int hwindowsize, int hsearchsize );
int im_global_balance( VipsImage *in, VipsImage *out, double gamma );
int im_global_balancef( VipsImage *in, VipsImage *out, double gamma );
int im_remosaic( VipsImage *in, VipsImage *out,
const char *old_str, const char *new_str );
int im_lrmerge1( VipsImage *ref, VipsImage *sec, VipsImage *out,
int xr1, int yr1, int xs1, int ys1,
int xr2, int yr2, int xs2, int ys2,
int mwidth );
int im_tbmerge1( VipsImage *ref, VipsImage *sec, VipsImage *out,
int xr1, int yr1, int xs1, int ys1,
int xr2, int yr2, int xs2, int ys2,
int mwidth );
int im_lrmosaic1( VipsImage *ref, VipsImage *sec, VipsImage *out,
int bandno,
int xr1, int yr1, int xs1, int ys1,
int xr2, int yr2, int xs2, int ys2,
int hwindowsize, int hsearchsize,
int balancetype,
int mwidth );
int im_tbmosaic1( VipsImage *ref, VipsImage *sec, VipsImage *out,
int bandno,
int xr1, int yr1, int xs1, int ys1,
int xr2, int yr2, int xs2, int ys2,
int hwindowsize, int hsearchsize,
int balancetype,
int mwidth );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_VIPS7COMPAT_H*/ #endif /*VIPS_VIPS7COMPAT_H*/
 End of changes. 4 change blocks. 
6 lines changed or deleted 98 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/