almostdeprecated.h   almostdeprecated.h 
skipping to change at line 134 skipping to change at line 134
__attribute__((format(printf, 1, 2))); __attribute__((format(printf, 1, 2)));
void im_verrormsg( const char *fmt, va_list ap ); void im_verrormsg( const char *fmt, va_list ap );
void im_errormsg_system( int err, const char *fmt, ... ) void im_errormsg_system( int err, const char *fmt, ... )
__attribute__((format(printf, 2, 3))); __attribute__((format(printf, 2, 3)));
void im_diagnostics( const char *fmt, ... ) void im_diagnostics( const char *fmt, ... )
__attribute__((format(printf, 1, 2))); __attribute__((format(printf, 1, 2)));
void im_warning( const char *fmt, ... ) void im_warning( const char *fmt, ... )
__attribute__((format(printf, 1, 2))); __attribute__((format(printf, 1, 2)));
int im_iterate( VipsImage *im, int im_iterate( VipsImage *im,
VipsStartFn start, VipsGenerateFn generate, VipsStopFn stop, VipsStartFn start, im_generate_fn generate, VipsStopFn stop,
void *a, void *b void *a, void *b
); );
/* Async rendering. /* Async rendering.
*/ */
int im_render_priority( VipsImage *in, VipsImage *out, VipsImage *mask, int im_render_priority( VipsImage *in, VipsImage *out, VipsImage *mask,
int width, int height, int max, int width, int height, int max,
int priority, int priority,
void (*notify)( VipsImage *, VipsRect *, void * ), void *client ); void (*notify)( VipsImage *, VipsRect *, void * ), void *client );
int im_cache( VipsImage *in, VipsImage *out, int width, int height, int max ); int im_cache( VipsImage *in, VipsImage *out, int width, int height, int max );
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 arithmetic.h   arithmetic.h 
skipping to change at line 40 skipping to change at line 40
*/ */
#ifndef IM_ARITHMETIC_H #ifndef IM_ARITHMETIC_H
#define IM_ARITHMETIC_H #define IM_ARITHMETIC_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
/* arithmetic /**
* VipsOperationMath:
* @VIPS_OPERATION_MATH_SIN: sin(), angles in degrees
* @VIPS_OPERATION_MATH_COS: cos(), angles in degrees
* @VIPS_OPERATION_MATH_TAN: tan(), angles in degrees
* @VIPS_OPERATION_MATH_ASIN: asin(), angles in degrees
* @VIPS_OPERATION_MATH_ACOS: acos(), angles in degrees
* @VIPS_OPERATION_MATH_ATAN: atan(), angles in degrees
* @VIPS_OPERATION_MATH_LOG: log base e
* @VIPS_OPERATION_MATH_LOG10: log base 10
* @VIPS_OPERATION_MATH_EXP: e to the something
* @VIPS_OPERATION_MATH_EXP10: 10 to the something
*
* See also: vips_math().
*/ */
DOUBLEMASK *im_measure_area( VipsImage *im, typedef enum {
int left, int top, int width, int height, VIPS_OPERATION_MATH_SIN,
int h, int v, VIPS_OPERATION_MATH_COS,
int *sel, int nsel, const char *name ); VIPS_OPERATION_MATH_TAN,
DOUBLEMASK *im_stats( VipsImage *in ); VIPS_OPERATION_MATH_ASIN,
int im_max( VipsImage *in, double *out ); VIPS_OPERATION_MATH_ACOS,
int im_min( VipsImage *in, double *out ); VIPS_OPERATION_MATH_ATAN,
int im_avg( VipsImage *in, double *out ); VIPS_OPERATION_MATH_LOG,
int im_deviate( VipsImage *in, double *out ); VIPS_OPERATION_MATH_LOG10,
int im_maxpos( VipsImage *in, int *xpos, int *ypos, double *out ); VIPS_OPERATION_MATH_EXP,
int im_minpos( VipsImage *in, int *xpos, int *ypos, double *out ); VIPS_OPERATION_MATH_EXP10,
VIPS_OPERATION_MATH_LAST
} VipsOperationMath;
/**
* VipsOperationMath2:
* @VIPS_OPERATION_MATH2_POW: pow( left, right )
* @VIPS_OPERATION_MATH2_WOP: pow( right, left )
*
* See also: vips_math().
*/
typedef enum {
VIPS_OPERATION_MATH2_POW,
VIPS_OPERATION_MATH2_WOP,
VIPS_OPERATION_MATH2_LAST
} VipsOperationMath2;
/**
* VipsOperationRound:
* @VIPS_OPERATION_ROUND_RINT: round to nearest
* @VIPS_OPERATION_ROUND_FLOOR: largest integral value not greater than
* @VIPS_OPERATION_ROUND_CEIL: the smallest integral value not less than
*
* See also: vips_round().
*/
typedef enum {
VIPS_OPERATION_ROUND_RINT,
VIPS_OPERATION_ROUND_CEIL,
VIPS_OPERATION_ROUND_FLOOR,
VIPS_OPERATION_ROUND_LAST
} VipsOperationRound;
/**
* VipsOperationRelational:
* @VIPS_OPERATION_RELATIONAL_EQUAL: ==
* @VIPS_OPERATION_RELATIONAL_NOTEQUAL: !=
* @VIPS_OPERATION_RELATIONAL_LESS: <
* @VIPS_OPERATION_RELATIONAL_LESSEQ: <=
* @VIPS_OPERATION_RELATIONAL_MORE: >
* @VIPS_OPERATION_RELATIONAL_MOREEQ: >=
*
* See also: vips_relational().
*/
typedef enum {
VIPS_OPERATION_RELATIONAL_EQUAL,
VIPS_OPERATION_RELATIONAL_NOTEQUAL,
VIPS_OPERATION_RELATIONAL_LESS,
VIPS_OPERATION_RELATIONAL_LESSEQ,
VIPS_OPERATION_RELATIONAL_MORE,
VIPS_OPERATION_RELATIONAL_MOREEQ,
VIPS_OPERATION_RELATIONAL_LAST
} VipsOperationRelational;
/**
* VipsOperationBoolean:
* @VIPS_OPERATION_BOOLEAN_AND: &
* @VIPS_OPERATION_BOOLEAN_OR: |
* @VIPS_OPERATION_BOOLEAN_EOR: ^
*
* See also: vips_boolean().
*/
typedef enum {
VIPS_OPERATION_BOOLEAN_AND,
VIPS_OPERATION_BOOLEAN_OR,
VIPS_OPERATION_BOOLEAN_EOR,
VIPS_OPERATION_BOOLEAN_LSHIFT,
VIPS_OPERATION_BOOLEAN_RSHIFT,
VIPS_OPERATION_BOOLEAN_LAST
} VipsOperationBoolean;
/**
* VipsOperationComplex:
* @VIPS_OPERATION_COMPLEX_POLAR: convert to polar coordinates
* @VIPS_OPERATION_COMPLEX_RECT: convert to rectangular coordinates
* @VIPS_OPERATION_COMPLEX_CONJ: complex conjugate
*
* See also: vips_complex().
*/
typedef enum {
VIPS_OPERATION_COMPLEX_POLAR,
VIPS_OPERATION_COMPLEX_RECT,
VIPS_OPERATION_COMPLEX_CONJ,
VIPS_OPERATION_COMPLEX_LAST
} VipsOperationComplex;
/**
* VipsOperationComplexget:
* @VIPS_OPERATION_COMPLEXGET_REAL: get real component
* @VIPS_OPERATION_COMPLEXGET_IMAG: get imaginary component
*
* See also: vips_complexget().
*/
typedef enum {
VIPS_OPERATION_COMPLEXGET_REAL,
VIPS_OPERATION_COMPLEXGET_IMAG,
VIPS_OPERATION_COMPLEXGET_LAST
} VipsOperationComplexget;
int vips_add( VipsImage *left, VipsImage *right, VipsImage **out, ... )
__attribute__((sentinel));
int vips_subtract( VipsImage *in1, VipsImage *in2, VipsImage **out, ... )
__attribute__((sentinel));
int vips_multiply( VipsImage *left, VipsImage *right, VipsImage **out, ...
)
__attribute__((sentinel));
int vips_divide( VipsImage *left, VipsImage *right, VipsImage **out, ... )
__attribute__((sentinel));
int vips_linear( VipsImage *in, VipsImage **out,
double *a, double *b, int n, ... )
__attribute__((sentinel));
int vips_linear1( VipsImage *in, VipsImage **out, double a, double b, ... )
__attribute__((sentinel));
int vips_remainder( VipsImage *left, VipsImage *right, VipsImage **out, ...
)
__attribute__((sentinel));
int vips_remainder_const( VipsImage *in, VipsImage **out,
double *c, int n, ... )
__attribute__((sentinel));
int vips_remainder_const1( VipsImage *in, VipsImage **out,
double c, ... )
__attribute__((sentinel));
int vips_invert( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_abs( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_sign( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_round( VipsImage *in, VipsImage **out, VipsOperationRound round, .
.. )
__attribute__((sentinel));
int vips_floor( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_ceil( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_rint( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_math( VipsImage *in, VipsImage **out,
VipsOperationMath math, ... )
__attribute__((sentinel));
int vips_sin( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_cos( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_tan( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_asin( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_acos( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_atan( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_exp( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_exp10( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_log( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_log10( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_complex( VipsImage *in, VipsImage **out,
VipsOperationComplex cmplx, ... )
__attribute__((sentinel));
int vips_polar( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_rect( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_conj( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_complexget( VipsImage *in, VipsImage **out,
VipsOperationComplexget get, ... )
__attribute__((sentinel));
int vips_real( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_imag( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_complexform( VipsImage *left, VipsImage *right, VipsImage **out, .
.. )
__attribute__((sentinel));
int vips_relational( VipsImage *left, VipsImage *right, VipsImage **out,
VipsOperationRelational relational, ... )
__attribute__((sentinel));
int vips_equal( VipsImage *left, VipsImage *right, VipsImage **out, ... )
__attribute__((sentinel));
int vips_notequal( VipsImage *left, VipsImage *right, VipsImage **out, ...
)
__attribute__((sentinel));
int vips_less( VipsImage *left, VipsImage *right, VipsImage **out, ... )
__attribute__((sentinel));
int vips_lesseq( VipsImage *left, VipsImage *right, VipsImage **out, ... )
__attribute__((sentinel));
int vips_more( VipsImage *left, VipsImage *right, VipsImage **out, ... )
__attribute__((sentinel));
int vips_moreeq( VipsImage *left, VipsImage *right, VipsImage **out, ... )
__attribute__((sentinel));
int vips_relational_const( VipsImage *in, VipsImage **out,
VipsOperationRelational relational, double *c, int n, ... )
__attribute__((sentinel));
int vips_equal_const( VipsImage *in, VipsImage **out, double *c, int n, ...
)
__attribute__((sentinel));
int vips_notequal_const( VipsImage *in, VipsImage **out, double *c, int n,
... )
__attribute__((sentinel));
int vips_less_const( VipsImage *in, VipsImage **out, double *c, int n, ...
)
__attribute__((sentinel));
int vips_lesseq_const( VipsImage *in, VipsImage **out, double *c, int n, ..
. )
__attribute__((sentinel));
int vips_more_const( VipsImage *in, VipsImage **out, double *c, int n, ...
)
__attribute__((sentinel));
int vips_moreeq_const( VipsImage *in, VipsImage **out, double *c, int n, ..
. )
__attribute__((sentinel));
int vips_relational_const1( VipsImage *in, VipsImage **out,
VipsOperationRelational relational, double c, ... )
__attribute__((sentinel));
int vips_equal_const1( VipsImage *in, VipsImage **out, double c, ... )
__attribute__((sentinel));
int vips_notequal_const1( VipsImage *in, VipsImage **out, double c, ... )
__attribute__((sentinel));
int vips_less_const1( VipsImage *in, VipsImage **out, double c, ... )
__attribute__((sentinel));
int vips_lesseq_const1( VipsImage *in, VipsImage **out, double c, ... )
__attribute__((sentinel));
int vips_more_const1( VipsImage *in, VipsImage **out, double c, ... )
__attribute__((sentinel));
int vips_moreeq_const1( VipsImage *in, VipsImage **out, double c, ... )
__attribute__((sentinel));
int vips_boolean( VipsImage *left, VipsImage *right, VipsImage **out,
VipsOperationBoolean boolean, ... )
__attribute__((sentinel));
int vips_andimage( VipsImage *left, VipsImage *right, VipsImage **out, ...
)
__attribute__((sentinel));
int vips_orimage( VipsImage *left, VipsImage *right, VipsImage **out, ... )
__attribute__((sentinel));
int vips_eorimage( VipsImage *left, VipsImage *right, VipsImage **out, ...
)
__attribute__((sentinel));
int vips_lshift( VipsImage *left, VipsImage *right, VipsImage **out, ... )
__attribute__((sentinel));
int vips_rshift( VipsImage *left, VipsImage *right, VipsImage **out, ... )
__attribute__((sentinel));
int vips_boolean_const( VipsImage *in, VipsImage **out,
VipsOperationBoolean boolean, double *c, int n, ... )
__attribute__((sentinel));
int vips_andimage_const( VipsImage *in, VipsImage **out, double *c, int n,
... )
__attribute__((sentinel));
int vips_orimage_const( VipsImage *in, VipsImage **out, double *c, int n, .
.. )
__attribute__((sentinel));
int vips_eorimage_const( VipsImage *in, VipsImage **out, double *c, int n,
... )
__attribute__((sentinel));
int vips_lshift_const( VipsImage *in, VipsImage **out, double *c, int n, ..
. )
__attribute__((sentinel));
int vips_rshift_const( VipsImage *in, VipsImage **out, double *c, int n, ..
. )
__attribute__((sentinel));
int vips_andimage_const1( VipsImage *in, VipsImage **out, double c, ... )
__attribute__((sentinel));
int vips_orimage_const1( VipsImage *in, VipsImage **out, double c, ... )
__attribute__((sentinel));
int vips_eorimage_const1( VipsImage *in, VipsImage **out, double c, ... )
__attribute__((sentinel));
int vips_lshift_const1( VipsImage *in, VipsImage **out, double c, ... )
__attribute__((sentinel));
int vips_rshift_const1( VipsImage *in, VipsImage **out, double c, ... )
__attribute__((sentinel));
int vips_math2( VipsImage *left, VipsImage *right, VipsImage **out,
VipsOperationMath2 math2, ... )
__attribute__((sentinel));
int vips_pow( VipsImage *left, VipsImage *right, VipsImage **out, ... )
__attribute__((sentinel));
int vips_wop( VipsImage *left, VipsImage *right, VipsImage **out, ... )
__attribute__((sentinel));
int vips_math2_const( VipsImage *in, VipsImage **out,
VipsOperationMath2 math2, double *c, int n, ... )
__attribute__((sentinel));
int vips_pow_const( VipsImage *in, VipsImage **out, double *c, int n, ... )
__attribute__((sentinel));
int vips_wop_const( VipsImage *in, VipsImage **out, double *c, int n, ... )
__attribute__((sentinel));
int vips_math2_const1( VipsImage *in, VipsImage **out,
VipsOperationMath2 math2, double c, ... )
__attribute__((sentinel));
int vips_pow_const1( VipsImage *in, VipsImage **out, double c, ... )
__attribute__((sentinel));
int vips_wop_const1( VipsImage *in, VipsImage **out, double c, ... )
__attribute__((sentinel));
int vips_avg( VipsImage *in, double *out, ... )
__attribute__((sentinel));
int vips_deviate( VipsImage *in, double *out, ... )
__attribute__((sentinel));
int vips_min( VipsImage *in, double *out, ... )
__attribute__((sentinel));
int vips_max( VipsImage *in, double *out, ... )
__attribute__((sentinel));
int vips_stats( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_measure( VipsImage *in, VipsImage **out, int h, int v, ... )
__attribute__((sentinel));
int im_maxpos_avg( VipsImage *im, double *xpos, double *ypos, double *out ) ; int im_maxpos_avg( VipsImage *im, double *xpos, double *ypos, double *out ) ;
int im_maxpos_vec( VipsImage *im, int *xpos, int *ypos, double *maxima, int n ); int im_maxpos_vec( VipsImage *im, int *xpos, int *ypos, double *maxima, int n );
int im_minpos_vec( VipsImage *im, int *xpos, int *ypos, double *minima, int n ); int im_minpos_vec( VipsImage *im, int *xpos, int *ypos, double *minima, int n );
int im_bandmean( VipsImage *in, VipsImage *out );
int im_add( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_subtract( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_invert( VipsImage *in, VipsImage *out );
int im_lintra( double a, VipsImage *in, double b, VipsImage *out );
int im_lintra_vec( int n, double *a, VipsImage *in, double *b, VipsImage *o
ut );
int im_multiply( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_divide( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_remainder( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_remainder_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_remainderconst( VipsImage *in, VipsImage *out, double c );
int im_recomb( VipsImage *in, VipsImage *out, DOUBLEMASK *recomb );
int im_sign( VipsImage *in, VipsImage *out );
int im_abs( VipsImage *in, VipsImage *out );
int im_floor( VipsImage *in, VipsImage *out );
int im_rint( VipsImage *in, VipsImage *out );
int im_ceil( VipsImage *in, VipsImage *out );
int im_linreg( VipsImage **ins, VipsImage *out, double *xs ); int im_linreg( VipsImage **ins, VipsImage *out, double *xs );
int im_point( VipsImage *im, VipsInterpolate *interpolate, int im_point( VipsImage *im, VipsInterpolate *interpolate,
double x, double y, int band, double *out ); double x, double y, int band, double *out );
int im_point_bilinear( VipsImage *im, int im_point_bilinear( VipsImage *im,
double x, double y, int band, double *out ); double x, double y, int band, double *out );
int im_powtra( VipsImage *in, VipsImage *out, double e );
int im_powtra_vec( VipsImage *in, VipsImage *out, int n, double *e );
int im_exptra( VipsImage *in, VipsImage *out );
int im_exp10tra( VipsImage *in, VipsImage *out );
int im_expntra( VipsImage *in, VipsImage *out, double e );
int im_expntra_vec( VipsImage *in, VipsImage *out, int n, double *e );
int im_logtra( VipsImage *in, VipsImage *out );
int im_log10tra( VipsImage *in, VipsImage *out );
int im_sintra( VipsImage *in, VipsImage *out );
int im_costra( VipsImage *in, VipsImage *out );
int im_tantra( VipsImage *in, VipsImage *out );
int im_asintra( VipsImage *in, VipsImage *out );
int im_acostra( VipsImage *in, VipsImage *out );
int im_atantra( VipsImage *in, VipsImage *out );
int im_cross_phase( VipsImage *a, VipsImage *b, VipsImage *out ); int im_cross_phase( VipsImage *a, VipsImage *b, VipsImage *out );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_ARITHMETIC_H*/ #endif /*IM_ARITHMETIC_H*/
 End of changes. 4 change blocks. 
48 lines changed or deleted 340 lines changed or added


 buf.h   buf.h 
skipping to change at line 37 skipping to change at line 37
*/ */
#ifndef VIPS_BUF_H #ifndef VIPS_BUF_H
#define VIPS_BUF_H #define VIPS_BUF_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#include <vips/vips.h>
/* A string in the process of being written to ... multiple calls to /* A string in the process of being written to ... multiple calls to
* vips_buf_append add to it, on overflow append "..." and block further wr * vips_buf_append add to it. On overflow append "..." and block further
ites. * writes.
*/ */
typedef struct {
typedef struct _VipsBuf {
/* All fields are private. /* All fields are private.
*/ */
/* <private> */ /*< private >*/
char *base; /* String base */ char *base; /* String base */
int mx; /* Maximum length */ int mx; /* Maximum length */
int i; /* Current write point */ int i; /* Current write point */
gboolean full; /* String has filled, block writes */ gboolean full; /* String has filled, block writes */
int lasti; /* For read-recent */ int lasti; /* For read-recent */
gboolean dynamic; /* We own the string with malloc() */ gboolean dynamic; /* We own the string with malloc() */
} VipsBuf; } VipsBuf;
#define VIPS_BUF_STATIC( TEXT ) \ #define VIPS_BUF_STATIC( TEXT ) \
{ &TEXT[0], sizeof( TEXT ), 0, FALSE, 0, FALSE } { &TEXT[0], sizeof( TEXT ), 0, FALSE, 0, FALSE }
skipping to change at line 72 skipping to change at line 76
void vips_buf_init_static( VipsBuf *buf, char *base, int mx ); void vips_buf_init_static( VipsBuf *buf, char *base, int mx );
void vips_buf_init_dynamic( VipsBuf *buf, int mx ); void vips_buf_init_dynamic( VipsBuf *buf, int mx );
gboolean vips_buf_appendns( VipsBuf *buf, const char *str, int sz ); gboolean vips_buf_appendns( VipsBuf *buf, const char *str, int sz );
gboolean vips_buf_appends( VipsBuf *buf, const char *str ); gboolean vips_buf_appends( VipsBuf *buf, const char *str );
gboolean vips_buf_appendf( VipsBuf *buf, const char *fmt, ... ) gboolean vips_buf_appendf( VipsBuf *buf, const char *fmt, ... )
__attribute__((format(printf, 2, 3))); __attribute__((format(printf, 2, 3)));
gboolean vips_buf_vappendf( VipsBuf *buf, const char *fmt, va_list ap ); gboolean vips_buf_vappendf( VipsBuf *buf, const char *fmt, va_list ap );
gboolean vips_buf_appendc( VipsBuf *buf, char ch ); gboolean vips_buf_appendc( VipsBuf *buf, char ch );
gboolean vips_buf_appendsc( VipsBuf *buf, gboolean quote, const char *str ) ; gboolean vips_buf_appendsc( VipsBuf *buf, gboolean quote, const char *str ) ;
gboolean vips_buf_appendgv( VipsBuf *buf, GValue *value ); gboolean vips_buf_appendgv( VipsBuf *buf, GValue *value );
gboolean vips_buf_append_size( VipsBuf *buf, size_t n );
gboolean vips_buf_removec( VipsBuf *buf, char ch ); gboolean vips_buf_removec( VipsBuf *buf, char ch );
gboolean vips_buf_change( VipsBuf *buf, const char *o, const char *n ); gboolean vips_buf_change( VipsBuf *buf, const char *o, const char *n );
gboolean vips_buf_is_empty( VipsBuf *buf ); gboolean vips_buf_is_empty( VipsBuf *buf );
gboolean vips_buf_is_full( VipsBuf *buf ); gboolean vips_buf_is_full( VipsBuf *buf );
const char *vips_buf_all( VipsBuf *buf ); const char *vips_buf_all( VipsBuf *buf );
const char *vips_buf_firstline( VipsBuf *buf ); const char *vips_buf_firstline( VipsBuf *buf );
gboolean vips_buf_appendg( VipsBuf *buf, double g ); gboolean vips_buf_appendg( VipsBuf *buf, double g );
gboolean vips_buf_appendd( VipsBuf *buf, int d ); gboolean vips_buf_appendd( VipsBuf *buf, int d );
int vips_buf_len( VipsBuf *buf ); int vips_buf_len( VipsBuf *buf );
 End of changes. 5 change blocks. 
4 lines changed or deleted 8 lines changed or added


 cimg_funcs.h   cimg_funcs.h 
skipping to change at line 40 skipping to change at line 40
*/ */
#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>
int im_greyc_mask( VipsImage *in, VipsImage *out, VipsImage *mask, int im_greyc_mask( VipsImage *in, VipsImage *out, VipsImage *mask,
int iterations, float amplitude, float sharpness, float anisotropy, int iterations, float amplitude, float sharpness, float anisotropy,
float alpha, float sigma, float dl, float da, float gauss_prec, float alpha, float sigma, float dl, float da, float gauss_prec,
int interpolation, int fast_approx ); int interpolation, int fast_approx );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_CIMG_FUNCS_H*/ #endif /*IM_CIMG_FUNCS_H*/
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 colour.h   colour.h 
skipping to change at line 45 skipping to change at line 45
*/ */
#ifndef IM_COLOUR_H #ifndef IM_COLOUR_H
#define IM_COLOUR_H #define IM_COLOUR_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
struct im_col_display;
int vips_LabQ2disp( VipsImage *in, VipsImage **out,
struct im_col_display *disp, ... )
__attribute__((sentinel));
int vips_rad2float( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_float2rad( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_LabS2LabQ( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_LabQ2Lab( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_Lab2LabQ( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_LCh2Lab( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_Yxy2Lab( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_UCS2XYZ( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_Lab2XYZ( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_XYZ2disp( VipsImage *in, VipsImage **out,
struct im_col_display *disp, ... )
__attribute__((sentinel));
/* Areas under curves for Dxx. 2 degree observer. /* Areas under curves for Dxx. 2 degree observer.
*/ */
#define IM_D93_X0 (89.7400) #define IM_D93_X0 (89.7400)
#define IM_D93_Y0 (100.0) #define IM_D93_Y0 (100.0)
#define IM_D93_Z0 (130.7700) #define IM_D93_Z0 (130.7700)
#define IM_D75_X0 (94.9682) #define IM_D75_X0 (94.9682)
#define IM_D75_Y0 (100.0) #define IM_D75_Y0 (100.0)
#define IM_D75_Z0 (122.5710) #define IM_D75_Z0 (122.5710)
skipping to change at line 122 skipping to change at line 149
double im_col_ab2h( double a, double b ); double im_col_ab2h( double a, double b );
float im_col_dECMC( float im_col_dECMC(
float L1, float a1, float b1, float L2, float a2, float b2 ); float L1, float a1, float b1, float L2, float a2, float b2 );
float im_col_dE00( float im_col_dE00(
float L1, float a1, float b1, float L2, float a2, float b2 ); float L1, float a1, float b1, float L2, float a2, float b2 );
int im_LCh2Lab( VipsImage *in, VipsImage *out ); int im_LCh2Lab( VipsImage *in, VipsImage *out );
int im_LabQ2XYZ( VipsImage *in, VipsImage *out ); int im_LabQ2XYZ( VipsImage *in, VipsImage *out );
int im_rad2float( VipsImage *in, VipsImage *out ); int im_rad2float( VipsImage *in, VipsImage *out );
int im_argb2rgba( VipsImage *in, VipsImage *out );
int im_float2rad( VipsImage *in, VipsImage *out ); int im_float2rad( VipsImage *in, VipsImage *out );
int im_LCh2UCS( VipsImage *in, VipsImage *out ); int im_LCh2UCS( VipsImage *in, VipsImage *out );
int im_Lab2LCh( VipsImage *in, VipsImage *out ); int im_Lab2LCh( VipsImage *in, VipsImage *out );
int im_Lab2LabQ( VipsImage *in, VipsImage *out ); int im_Lab2LabQ( VipsImage *in, VipsImage *out );
int im_Lab2LabS( VipsImage *in, VipsImage *out ); int im_Lab2LabS( VipsImage *in, VipsImage *out );
int im_Lab2XYZ( VipsImage *in, VipsImage *out ); int im_Lab2XYZ( VipsImage *in, VipsImage *out );
int im_Lab2XYZ_temp( VipsImage *in, VipsImage *out, int im_Lab2XYZ_temp( VipsImage *in, VipsImage *out,
double X0, double Y0, double Z0 ); double X0, double Y0, double Z0 );
int im_Lab2UCS( VipsImage *in, VipsImage *out ); int im_Lab2UCS( VipsImage *in, VipsImage *out );
int im_LabQ2Lab( VipsImage *in, VipsImage *out ); int im_LabQ2Lab( VipsImage *in, VipsImage *out );
skipping to change at line 157 skipping to change at line 185
int im_dECMC_fromLab( VipsImage *in1, VipsImage *in2, VipsImage *out ); int im_dECMC_fromLab( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_dE00_fromLab( VipsImage *in1, VipsImage *in2, VipsImage *out ); int im_dE00_fromLab( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_dE_fromXYZ( VipsImage *in1, VipsImage *in2, VipsImage *out ); int im_dE_fromXYZ( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_dE_fromLab( VipsImage *in1, VipsImage *in2, VipsImage *out ); int im_dE_fromLab( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_lab_morph( VipsImage *in, VipsImage *out, int im_lab_morph( VipsImage *in, VipsImage *out,
DOUBLEMASK *mask, DOUBLEMASK *mask,
double L_offset, double L_scale, double L_offset, double L_scale,
double a_scale, double b_scale ); double a_scale, double b_scale );
void im_col_make_tables_UCS( void );
/* Render intents for icc wrappers. /* Render intents for icc wrappers.
*/ */
typedef enum { typedef enum {
IM_INTENT_PERCEPTUAL = 0, IM_INTENT_PERCEPTUAL = 0,
IM_INTENT_RELATIVE_COLORIMETRIC, IM_INTENT_RELATIVE_COLORIMETRIC,
IM_INTENT_SATURATION, IM_INTENT_SATURATION,
IM_INTENT_ABSOLUTE_COLORIMETRIC IM_INTENT_ABSOLUTE_COLORIMETRIC
} VipsIntent; } VipsIntent;
int im_icc_present( void ); int im_icc_present( void );
 End of changes. 3 change blocks. 
2 lines changed or deleted 28 lines changed or added


 conversion.h   conversion.h 
skipping to change at line 33 skipping to change at line 33
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 U SA Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 U SA
*/ */
/* /*
These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk
*/ */
#ifndef IM_CONVERSION_H #ifndef VIPS_CONVERSION_H
#define IM_CONVERSION_H #define VIPS_CONVERSION_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
DOUBLEMASK *im_vips2mask( VipsImage *in, const char *filename ); /**
int im_mask2vips( DOUBLEMASK *in, VipsImage *out ); * VipsExtend:
* @VIPS_EXTEND_BLACK: extend with black (all 0) pixels
* @VIPS_EXTEND_COPY: copy the image edges
* @VIPS_EXTEND_REPEAT: repeat the whole image
* @VIPS_EXTEND_MIRROR: mirror the whole image
* @VIPS_EXTEND_WHITE: extend with white (all bits set) pixels
*
* See vips_embed(), vips_conv(), vips_affine() and so on.
*
* When the edges of an image are extended, you can specify
* how you want the extension done.
*
* #VIPS_EXTEND_BLACK --- new pixels are black, ie. all bits are zero.
*
* #VIPS_EXTEND_COPY --- each new pixel takes the value of the nearest edge
* pixel
*
* #VIPS_EXTEND_REPEAT --- the image is tiled to fill the new area
*
* #VIPS_EXTEND_MIRROR --- the image is reflected and tiled to reduce hash
* edges
*
* #VIPS_EXTEND_WHITE --- new pixels are white, ie. all bits are set
*
* We have to specify the exact value of each enum member since we have to
* keep these frozen for back compat with vips7.
*
* See also: vips_embed().
*/
typedef enum {
VIPS_EXTEND_BLACK = 0,
VIPS_EXTEND_COPY = 1,
VIPS_EXTEND_REPEAT = 2,
VIPS_EXTEND_MIRROR = 3,
VIPS_EXTEND_WHITE = 4,
VIPS_EXTEND_LAST = 5
} VipsExtend;
/**
* VipsDirection:
* @VIPS_DIRECTION_HORIZONTAL: left-right
* @VIPS_DIRECTION_VERTICAL: top-bottom
*
* See vips_flip(), vips_join() and so on.
*
* Operations like vips_flip() need to be told whether to flip left-right o
r
* top-bottom.
*
* See also: vips_flip(), vips_join().
*/
typedef enum {
VIPS_DIRECTION_HORIZONTAL,
VIPS_DIRECTION_VERTICAL,
VIPS_DIRECTION_LAST
} VipsDirection;
/**
* VipsAlign:
* @VIPS_ALIGN_LOW: align low coordinate edge
* @VIPS_ALIGN_CENTRE: align centre
* @VIPS_ALIGN_HIGH: align high coordinate edge
*
* See vips_join() and so on.
*
* Operations like vips_join() need to be told whether to align images on t
he
* low or high coordinate edge, or centre.
*
* See also: vips_join().
*/
typedef enum {
VIPS_ALIGN_LOW,
VIPS_ALIGN_CENTRE,
VIPS_ALIGN_HIGH,
VIPS_ALIGN_LAST
} VipsAlign;
/**
* VipsAngle:
* @VIPS_ANGLE_0: no rotate
* @VIPS_ANGLE_90: 90 degrees anti-clockwise
* @VIPS_ANGLE_180: 180 degree rotate
* @VIPS_ANGLE_270: 90 degrees clockwise
*
* See vips_rot() and so on.
*
* Fixed rotate angles.
*
* See also: vips_rot().
*/
typedef enum {
VIPS_ANGLE_0,
VIPS_ANGLE_90,
VIPS_ANGLE_180,
VIPS_ANGLE_270,
VIPS_ANGLE_LAST
} VipsAngle;
/**
* VipsCacheStrategy:
* @VIPS_CACHE_RANDOM: expect random access
* @VIPS_CACHE_SEQUENTIAL: expect sequential access
*
* See vips_tilecache() and friends.
*
* Used to hint to caches about the expected access pattern. RANDOM might m
ean
* LRU eviction, SEQUENTIAL might mean top-most eviction.
*
* See also: vips_tilecache().
*/
typedef enum {
VIPS_CACHE_RANDOM,
VIPS_CACHE_SEQUENTIAL,
VIPS_CACHE_LAST
} VipsCacheStrategy;
int vips_copy( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_tilecache( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_sequential( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_cache( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_embed( VipsImage *in, VipsImage **out,
int x, int y, int width, int height, ... )
__attribute__((sentinel));
int vips_flip( VipsImage *in, VipsImage **out, VipsDirection direction, ...
)
__attribute__((sentinel));
int vips_insert( VipsImage *main, VipsImage *sub, VipsImage **out,
int x, int y, ... )
__attribute__((sentinel));
int vips_join( VipsImage *main, VipsImage *sub, VipsImage **out,
VipsDirection direction, ... )
__attribute__((sentinel));
int vips_extract_area( VipsImage *input, VipsImage **output,
int left, int top, int width, int height, ... )
__attribute__((sentinel));
int vips_extract_band( VipsImage *input, VipsImage **output, int band, ...
)
__attribute__((sentinel));
int vips_replicate( VipsImage *in, VipsImage **out, int across, int down, .
.. )
__attribute__((sentinel));
int vips_cast( VipsImage *in, VipsImage **out, VipsBandFormat format, ... )
__attribute__((sentinel));
int vips_cast_uchar( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_cast_char( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_cast_ushort( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_cast_short( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_cast_uint( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_cast_int( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_cast_float( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_cast_double( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_cast_complex( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_cast_dpcomplex( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_bandjoin( VipsImage **in, VipsImage **out, int n, ... )
__attribute__((sentinel));
int vips_bandjoin2( VipsImage *in1, VipsImage *in2, VipsImage **out, ... )
__attribute__((sentinel));
int vips_bandmean( VipsImage *in, VipsImage **out, ... )
__attribute__((sentinel));
int vips_recomb( VipsImage *in, VipsImage **out, VipsImage *m, ... )
__attribute__((sentinel));
int vips_black( VipsImage **out, int width, int height, ... )
__attribute__((sentinel));
int vips_rot( VipsImage *in, VipsImage **out, VipsAngle angle, ... )
__attribute__((sentinel));
int vips_ifthenelse( VipsImage *cond, VipsImage *in1, VipsImage *in2,
VipsImage **out, ... )
__attribute__((sentinel));
int im_copy( VipsImage *in, VipsImage *out );
int im_copy_set( VipsImage *in, VipsImage *out,
VipsInterpretation interpretation,
float xres, float yres, int xoffset, int yoffset );
int im_copy_set_meta( VipsImage *in, VipsImage *out,
const char *field, GValue *value );
int im_copy_morph( VipsImage *in, VipsImage *out,
int bands, VipsBandFormat format, VipsCoding coding );
int im_copy_swap( VipsImage *in, VipsImage *out );
int im_copy_native( VipsImage *in, VipsImage *out, gboolean is_msb_first );
int im_copy_file( VipsImage *in, VipsImage *out ); int im_copy_file( VipsImage *in, VipsImage *out );
int im_clip2fmt( VipsImage *in, VipsImage *out, VipsBandFormat fmt );
int im_scale( VipsImage *in, VipsImage *out ); int im_scale( VipsImage *in, VipsImage *out );
int im_msb( VipsImage *in, VipsImage *out ); int im_msb( VipsImage *in, VipsImage *out );
int im_msb_band( VipsImage *in, VipsImage *out, int band ); int im_msb_band( VipsImage *in, VipsImage *out, int band );
int im_c2amph( VipsImage *in, VipsImage *out );
int im_c2rect( VipsImage *in, VipsImage *out );
int im_ri2c( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_c2imag( VipsImage *in, VipsImage *out );
int im_c2real( VipsImage *in, VipsImage *out );
int im_scaleps( VipsImage *in, VipsImage *out ); int im_scaleps( VipsImage *in, VipsImage *out );
int im_falsecolour( VipsImage *in, VipsImage *out ); int im_falsecolour( VipsImage *in, VipsImage *out );
int im_gaussnoise( VipsImage *out, int x, int y, double mean, double sigma ); int im_gaussnoise( VipsImage *out, int x, int y, double mean, double sigma );
int im_black( VipsImage *out, int x, int y, int bands );
int im_text( VipsImage *out, const char *text, const char *font, int im_text( VipsImage *out, const char *text, const char *font,
int width, int alignment, int dpi ); int width, int alignment, int dpi );
int im_extract_band( VipsImage *in, VipsImage *out, int band );
int im_extract_bands( VipsImage *in, VipsImage *out, int band, int nbands )
;
int im_extract_area( VipsImage *in, VipsImage *out,
int left, int top, int width, int height );
int im_extract_areabands( VipsImage *in, VipsImage *out,
int left, int top, int width, int height, int band, int nbands );
int im_embed( VipsImage *in, VipsImage *out,
int type, int x, int y, int width, int height );
int im_bandjoin( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_gbandjoin( VipsImage **in, VipsImage *out, int n );
int im_insert( VipsImage *main, VipsImage *sub, VipsImage *out, int x, int
y );
int im_insert_noexpand( VipsImage *main, VipsImage *sub, VipsImage *out, in
t x, int y );
int im_insertset( VipsImage *main, VipsImage *sub, VipsImage *out, int n, i nt *x, int *y ); int im_insertset( VipsImage *main, VipsImage *sub, VipsImage *out, int n, i nt *x, int *y );
int im_lrjoin( VipsImage *left, VipsImage *right, VipsImage *out );
int im_tbjoin( VipsImage *top, VipsImage *bottom, VipsImage *out );
int im_replicate( VipsImage *in, VipsImage *out, int across, int down );
int im_grid( VipsImage *in, VipsImage *out, int tile_height, int across, in t down ); int im_grid( VipsImage *in, VipsImage *out, int tile_height, int across, in t down );
int im_wrap( VipsImage *in, VipsImage *out, int x, int y ); int im_wrap( VipsImage *in, VipsImage *out, int x, int y );
int im_fliphor( VipsImage *in, VipsImage *out );
int im_flipver( VipsImage *in, VipsImage *out );
int im_rot90( VipsImage *in, VipsImage *out );
int im_rot180( VipsImage *in, VipsImage *out );
int im_rot270( VipsImage *in, VipsImage *out );
int im_subsample( VipsImage *in, VipsImage *out, int xshrink, int yshrink ) ; int im_subsample( VipsImage *in, VipsImage *out, int xshrink, int yshrink ) ;
int im_zoom( VipsImage *in, VipsImage *out, int xfac, int yfac ); int im_zoom( VipsImage *in, VipsImage *out, int xfac, int yfac );
int im_system( VipsImage *im, const char *cmd, char **out ); int im_system( VipsImage *im, const char *cmd, char **out );
VipsImage *im_system_image( VipsImage *im, VipsImage *im_system_image( VipsImage *im,
const char *in_format, const char *out_format, const char *cmd_forma t, const char *in_format, const char *out_format, const char *cmd_forma t,
char **log ); char **log );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_CONVERSION_H*/ #endif /*VIPS_CONVERSION_H*/
 End of changes. 10 change blocks. 
45 lines changed or deleted 190 lines changed or added


 enumtypes.h   enumtypes.h 
/* Generated data (by glib-mkenums) */ /* Generated data (by glib-mkenums) */
#ifndef VIPS_ENUM_TYPES_H #ifndef VIPS_ENUM_TYPES_H
#define VIPS_ENUM_TYPES_H #define VIPS_ENUM_TYPES_H
G_BEGIN_DECLS G_BEGIN_DECLS
/* enumerations from "../../../libvips/include/vips/foreign.h" */
GType vips_foreign_flags_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_FOREIGN_FLAGS (vips_foreign_flags_get_type())
GType vips_saveable_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_SAVEABLE (vips_saveable_get_type())
GType vips_foreign_tiff_compression_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_FOREIGN_TIFF_COMPRESSION (vips_foreign_tiff_compression_g
et_type())
GType vips_foreign_tiff_predictor_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_FOREIGN_TIFF_PREDICTOR (vips_foreign_tiff_predictor_get_t
ype())
GType vips_foreign_tiff_resunit_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_FOREIGN_TIFF_RESUNIT (vips_foreign_tiff_resunit_get_type(
))
/* enumerations from "../../../libvips/include/vips/arithmetic.h" */
GType vips_operation_math_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_MATH (vips_operation_math_get_type())
GType vips_operation_math2_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_MATH2 (vips_operation_math2_get_type())
GType vips_operation_round_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_ROUND (vips_operation_round_get_type())
GType vips_operation_relational_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_RELATIONAL (vips_operation_relational_get_type(
))
GType vips_operation_boolean_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_BOOLEAN (vips_operation_boolean_get_type())
GType vips_operation_complex_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_COMPLEX (vips_operation_complex_get_type())
GType vips_operation_complexget_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_OPERATION_COMPLEXGET (vips_operation_complexget_get_type(
))
/* enumerations from "../../../libvips/include/vips/conversion.h" */
GType vips_extend_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_EXTEND (vips_extend_get_type())
GType vips_direction_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_DIRECTION (vips_direction_get_type())
GType vips_align_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_ALIGN (vips_align_get_type())
GType vips_angle_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_ANGLE (vips_angle_get_type())
GType vips_cache_strategy_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_CACHE_STRATEGY (vips_cache_strategy_get_type())
/* enumerations from "../../../libvips/include/vips/util.h" */ /* enumerations from "../../../libvips/include/vips/util.h" */
GType vips_token_get_type (void) G_GNUC_CONST; GType vips_token_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_TOKEN (vips_token_get_type()) #define VIPS_TYPE_TOKEN (vips_token_get_type())
/* enumerations from "../../../libvips/include/vips/image.h" */ /* enumerations from "../../../libvips/include/vips/image.h" */
GType vips_demand_style_get_type (void) G_GNUC_CONST; GType vips_demand_style_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_DEMAND_STYLE (vips_demand_style_get_type()) #define VIPS_TYPE_DEMAND_STYLE (vips_demand_style_get_type())
GType vips_image_type_get_type (void) G_GNUC_CONST; GType vips_image_type_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_IMAGE_TYPE (vips_image_type_get_type()) #define VIPS_TYPE_IMAGE_TYPE (vips_image_type_get_type())
GType vips_interpretation_get_type (void) G_GNUC_CONST; GType vips_interpretation_get_type (void) G_GNUC_CONST;
#define VIPS_TYPE_INTERPRETATION (vips_interpretation_get_type()) #define VIPS_TYPE_INTERPRETATION (vips_interpretation_get_type())
 End of changes. 1 change blocks. 
0 lines changed or deleted 42 lines changed or added


 freq_filt.h   freq_filt.h 
skipping to change at line 40 skipping to change at line 40
*/ */
#ifndef IM_FREQ_H #ifndef IM_FREQ_H
#define IM_FREQ_H #define IM_FREQ_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#include <vips/vips.h>
typedef enum { typedef enum {
VIPS_MASK_IDEAL_HIGHPASS = 0, VIPS_MASK_IDEAL_HIGHPASS = 0,
VIPS_MASK_IDEAL_LOWPASS = 1, VIPS_MASK_IDEAL_LOWPASS = 1,
VIPS_MASK_BUTTERWORTH_HIGHPASS = 2, VIPS_MASK_BUTTERWORTH_HIGHPASS = 2,
VIPS_MASK_BUTTERWORTH_LOWPASS = 3, VIPS_MASK_BUTTERWORTH_LOWPASS = 3,
VIPS_MASK_GAUSS_HIGHPASS = 4, VIPS_MASK_GAUSS_HIGHPASS = 4,
VIPS_MASK_GAUSS_LOWPASS = 5, VIPS_MASK_GAUSS_LOWPASS = 5,
VIPS_MASK_IDEAL_RINGPASS = 6, VIPS_MASK_IDEAL_RINGPASS = 6,
VIPS_MASK_IDEAL_RINGREJECT = 7, VIPS_MASK_IDEAL_RINGREJECT = 7,
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 generate.h   generate.h 
/* Definitions for partial image regions. /* Generate pixels.
* *
* J.Cupitt, 8/4/93 * J.Cupitt, 8/4/93
*/ */
/* /*
This file is part of VIPS. This file is part of VIPS.
VIPS is free software; you can redistribute it and/or modify VIPS is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as publishe d by it under the terms of the GNU Lesser General Public License as publishe d by
skipping to change at line 39 skipping to change at line 39
*/ */
#ifndef VIPS_GENERATE_H #ifndef VIPS_GENERATE_H
#define VIPS_GENERATE_H #define VIPS_GENERATE_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
typedef int (*VipsRegionWrite)( VipsRegion *region, VipsRect *area, void *a
);
int vips_sink_disc( VipsImage *im, VipsRegionWrite write_fn, void *a );
typedef void *(*VipsStartFn)( VipsImage *out, void *a, void *b ); typedef void *(*VipsStartFn)( VipsImage *out, void *a, void *b );
typedef int (*VipsGenerateFn)( VipsRegion *out, void *seq, void *a, void *b typedef int (*VipsGenerateFn)( VipsRegion *out,
); void *seq, void *a, void *b, gboolean *stop );
typedef int (*VipsStopFn)( void *seq, void *a, void *b ); typedef int (*VipsStopFn)( void *seq, void *a, void *b );
int vips_sink( VipsImage *im,
VipsStartFn start_fn, VipsGenerateFn generate_fn, VipsStopFn stop_fn
,
void *a, void *b );
int vips_sink_tile( VipsImage *im,
int tile_width, int tile_height,
VipsStartFn start_fn, VipsGenerateFn generate_fn, VipsStopFn stop_fn
,
void *a, void *b );
typedef void (*VipsSinkNotify)( VipsImage *im, VipsRect *rect, void *a );
int vips_sink_screen( VipsImage *in, VipsImage *out, VipsImage *mask,
int tile_width, int tile_height, int max_tiles,
int priority,
VipsSinkNotify notify, void *a );
int vips_sink_memory( VipsImage *im );
int vips_sink_memory2( VipsImage *image );
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 *im,
VipsStartFn start, VipsGenerateFn generate, VipsStopFn stop, VipsStartFn start_fn, VipsGenerateFn generate_fn, VipsStopFn stop_fn ,
void *a, void *b void *a, void *b
); );
int vips_demand_hint_array( VipsImage *image, void vips_demand_hint_array( VipsImage *image,
VipsDemandStyle hint, VipsImage **in ); VipsDemandStyle hint, VipsImage **in );
int vips_demand_hint( VipsImage *image, VipsDemandStyle hint, ... ) void vips_demand_hint( VipsImage *image, VipsDemandStyle hint, ... )
__attribute__((sentinel)); __attribute__((sentinel));
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_GENERATE_H*/ #endif /*VIPS_GENERATE_H*/
 End of changes. 7 change blocks. 
6 lines changed or deleted 28 lines changed or added


 header.h   header.h 
skipping to change at line 80 skipping to change at line 80
#define VIPS_META_XML "xml-header" #define VIPS_META_XML "xml-header"
/** /**
* VIPS_META_RESOLUTION_UNIT: * VIPS_META_RESOLUTION_UNIT:
* *
* The JPEG and TIFF read and write operations use this to record the * The JPEG and TIFF read and write operations use this to record the
* file's preferred unit for resolution. * file's preferred unit for resolution.
*/ */
#define VIPS_META_RESOLUTION_UNIT "resolution-unit" #define VIPS_META_RESOLUTION_UNIT "resolution-unit"
int vips_format_sizeof( VipsBandFormat format ); /**
* VIPS_META_BACKGROUND_RGB:
*
* The OpenSlide load operator uses this to note the colour to use to paint
* transparent pixels in pre-multiplied ARGB format. See im_argb2rgba().
*/
#define VIPS_META_BACKGROUND_RGB "background-rgb"
guint64 vips_format_sizeof( VipsBandFormat format );
int vips_image_get_width( VipsImage *image ); int vips_image_get_width( const VipsImage *image );
int vips_image_get_height( VipsImage *image ); int vips_image_get_height( const VipsImage *image );
int vips_image_get_bands( VipsImage *image ); int vips_image_get_bands( const VipsImage *image );
VipsBandFormat vips_image_get_format( VipsImage *image ); VipsBandFormat vips_image_get_format( const VipsImage *image );
VipsCoding vips_image_get_coding( VipsImage *image ); VipsCoding vips_image_get_coding( const VipsImage *image );
VipsInterpretation vips_image_get_interpretation( VipsImage *image ); VipsInterpretation vips_image_get_interpretation( const VipsImage *image );
double vips_image_get_xres( VipsImage *image ); double vips_image_get_xres( const VipsImage *image );
double vips_image_get_yres( VipsImage *image ); double vips_image_get_yres( const VipsImage *image );
int vips_image_get_xoffset( VipsImage *image ); int vips_image_get_xoffset( const VipsImage *image );
int vips_image_get_yoffset( VipsImage *image ); int vips_image_get_yoffset( const VipsImage *image );
const char *vips_image_get_filename( VipsImage *image ); const char *vips_image_get_filename( const VipsImage *image );
const char *vips_image_get_mode( VipsImage *image ); const char *vips_image_get_mode( const VipsImage *image );
void *vips_image_get_data( VipsImage *image );; 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,
float xres, float yres ); double xres, double yres );
int vips_image_copy_fields_array( VipsImage *out, VipsImage *in[] ); int vips_image_copy_fields_array( VipsImage *out, VipsImage *in[] );
int vips_image_copy_fieldsv( VipsImage *out, VipsImage *in1, ... ) int vips_image_copy_fieldsv( VipsImage *out, VipsImage *in1, ... )
__attribute__((sentinel)); __attribute__((sentinel));
int vips_image_copy_fields( VipsImage *out, VipsImage *in ); int vips_image_copy_fields( VipsImage *out, VipsImage *in );
int 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( VipsImage *image, const char *field, GValue *value_copy ); int vips_image_get( VipsImage *image, const char *field, GValue *value_copy );
int vips_image_get_as_string( VipsImage *image, const char *field, char **o ut );
GType vips_image_get_typeof( VipsImage *image, const char *field ); GType vips_image_get_typeof( VipsImage *image, const char *field );
gboolean vips_image_remove( VipsImage *image, const char *field ); gboolean vips_image_remove( VipsImage *image, const char *field );
typedef void *(*VipsImageMapFn)( VipsImage *image, typedef void *(*VipsImageMapFn)( VipsImage *image,
const char *field, GValue *value, void *a ); const char *field, GValue *value, void *a );
void *vips_image_map( VipsImage *im, VipsImageMapFn fn, void *a ); void *vips_image_map( VipsImage *image, VipsImageMapFn fn, void *a );
/**
* VIPS_TYPE_SAVE_STRING:
*
* The #GType for an "vips_save_string".
*/
#define VIPS_TYPE_SAVE_STRING (vips_save_string_get_type())
GType vips_save_string_get_type( void );
const char *vips_save_string_get( const GValue *value );
void vips_save_string_set( GValue *value, const char *str );
void vips_save_string_setf( GValue *value, const char *fmt, ... )
__attribute__((format(printf, 2, 3)));
/**
* VIPS_TYPE_AREA:
*
* The #GType for an #vips_area.
*/
#define VIPS_TYPE_AREA (vips_area_get_type())
GType vips_area_get_type( void );
/** void vips_image_set_area( VipsImage *image,
* VIPS_TYPE_REF_STRING:
*
* The #GType for an #vips_refstring.
*/
#define VIPS_TYPE_REF_STRING (vips_ref_string_get_type())
GType vips_ref_string_get_type( void );
int vips_ref_string_set( GValue *value, const char *str );
const char *vips_ref_string_get( const GValue *value );
size_t vips_ref_string_get_length( const GValue *value );
/**
* VIPS_TYPE_BLOB:
*
* The #GType for an #vips_blob.
*/
/* Also used for eg. vips_local() and friends.
*/
typedef int (*VipsCallbackFn)( void *a, void *b );
#define VIPS_TYPE_BLOB (vips_blob_get_type())
GType vips_blob_get_type( void );
void *vips_blob_get( const GValue *value, size_t *length );
int vips_blob_set( GValue *value, VipsCallbackFn free_fn,
void *data, size_t length );
int vips_image_set_area( VipsImage *image,
const char *field, VipsCallbackFn free_fn, void *data ); const char *field, VipsCallbackFn free_fn, void *data );
int vips_image_get_area( VipsImage *image, const char *field, void **data ) ; int vips_image_get_area( VipsImage *image, const char *field, void **data ) ;
int vips_image_set_string( VipsImage *image, void vips_image_set_blob( VipsImage *image, const char *field,
const char *field, const char *str );
int vips_image_get_string( VipsImage *image, const char *field, char **str
);
int vips_image_set_blob( VipsImage *image, const char *field,
VipsCallbackFn free_fn, void *data, size_t length ); VipsCallbackFn free_fn, void *data, size_t length );
int vips_image_get_blob( VipsImage *image, const char *field, int vips_image_get_blob( VipsImage *image, const char *field,
void **data, size_t *length ); void **data, size_t *length );
int vips_image_get_int( VipsImage *image, const char *field, int *out ); int vips_image_get_int( VipsImage *image, const char *field, int *out );
int vips_image_set_int( VipsImage *image, const char *field, int i ); void vips_image_set_int( VipsImage *image, const char *field, int i );
int vips_image_get_double( VipsImage *image, const char *field, double *out ); int vips_image_get_double( VipsImage *image, const char *field, double *out );
int vips_image_set_double( VipsImage *image, const char *field, double d ); void vips_image_set_double( VipsImage *image, const char *field, double d ) ;
int vips_image_get_string( VipsImage *image, const char *field, char **out ); int vips_image_get_string( VipsImage *image, const char *field, char **out );
int vips_image_set_string( VipsImage *image, void vips_image_set_string( VipsImage *image,
const char *field, const char *str ); const char *field, const char *str );
int vips_image_get_as_string( VipsImage *image, const char *field, char **o
ut );
GType vips_image_get_typeof( VipsImage *image, const char *field );
int vips_image_history_printf( VipsImage *image, const char *format, ... ) int vips_image_history_printf( VipsImage *image, const char *format, ... )
__attribute__((format(printf, 2, 3))); __attribute__((format(printf, 2, 3)));
int vips_image_history_args( VipsImage *image, int vips_image_history_args( VipsImage *image,
const char *name, int argc, char *argv[] ); const char *name, int argc, char *argv[] );
const char *vips_image_get_history( VipsImage *image ); const char *vips_image_get_history( VipsImage *image );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
 End of changes. 12 change blocks. 
76 lines changed or deleted 31 lines changed or added


 image.h   image.h 
skipping to change at line 65 skipping to change at line 65
* *
* See vips_demand_hint(). Operations can hint to the VIPS image IO system about * See vips_demand_hint(). Operations can hint to the VIPS image IO system about
* the kind of demand geometry they prefer. * the kind of demand geometry they prefer.
* *
* These demand styles are given below in order of increasing * These demand styles are given below in order of increasing
* restrictiveness. When demanding output from a pipeline, * restrictiveness. When demanding output from a pipeline,
* vips_image_generate() * vips_image_generate()
* will use the most restrictive of the styles requested by the operations * will use the most restrictive of the styles requested by the operations
* in the pipeline. * in the pipeline.
* *
* VIPS_DEMAND_STYLE_THINSTRIP --- This operation would like to output stri ps * #VIPS_DEMAND_STYLE_THINSTRIP --- This operation would like to output str ips
* the width of the image and a few pels high. This is option suitable for * the width of the image and a few pels high. This is option suitable for
* point-to-point operations, such as those in the arithmetic package. * point-to-point operations, such as those in the arithmetic package.
* *
* This option is only efficient for cases where each output pel depends * This option is only efficient for cases where each output pel depends
* upon the pel in the corresponding position in the input image. * upon the pel in the corresponding position in the input image.
* *
* VIPS_DEMAND_STYLE_FATSTRIP --- This operation would like to output strip s * #VIPS_DEMAND_STYLE_FATSTRIP --- This operation would like to output stri ps
* the width of the image and as high as possible. This option is suitable * the width of the image and as high as possible. This option is suitable
* for area operations which do not violently transform coordinates, such * for area operations which do not violently transform coordinates, such
* as im_conv(). * as im_conv().
* *
* VIPS_DEMAND_STYLE_SMALLTILE --- This is the most general demand format. * #VIPS_DEMAND_STYLE_SMALLTILE --- This is the most general demand format.
* Output is demanded in small (around 100x100 pel) sections. This style wo rks * Output is demanded in small (around 100x100 pel) sections. This style wo rks
* reasonably efficiently, even for bizzare operations like 45 degree rotat e. * reasonably efficiently, even for bizzare operations like 45 degree rotat e.
* *
* VIPS_DEMAND_STYLE_ANY --- This image is not being demand-read from a dis c * #VIPS_DEMAND_STYLE_ANY --- This image is not being demand-read from a di sc
* file (even indirectly) so any demand style is OK. It's used for things l ike * file (even indirectly) so any demand style is OK. It's used for things l ike
* im_black() where the pixels are calculated. * im_black() where the pixels are calculated.
* *
* See also: vips_demand_hint(). * See also: vips_demand_hint().
*/ */
typedef enum { typedef enum {
VIPS_DEMAND_STYLE_ERROR = -1,
VIPS_DEMAND_STYLE_SMALLTILE, VIPS_DEMAND_STYLE_SMALLTILE,
VIPS_DEMAND_STYLE_FATSTRIP, VIPS_DEMAND_STYLE_FATSTRIP,
VIPS_DEMAND_STYLE_THINSTRIP, VIPS_DEMAND_STYLE_THINSTRIP,
VIPS_DEMAND_STYLE_ANY VIPS_DEMAND_STYLE_ANY
} VipsDemandStyle; } VipsDemandStyle;
/* Types of image descriptor we may have. The type field is advisory only: it /* Types of image descriptor we may have. The type field is advisory only: it
* does not imply that any fields in IMAGE have valid data. * does not imply that any fields in IMAGE have valid data.
*/ */
typedef enum { typedef enum {
VIPS_IMAGE_ERROR = -1,
VIPS_IMAGE_NONE, /* no type set */ VIPS_IMAGE_NONE, /* no type set */
VIPS_IMAGE_SETBUF, /* malloced memory array */ VIPS_IMAGE_SETBUF, /* malloced memory array */
VIPS_IMAGE_SETBUF_FOREIGN, /* memory array, don't free on close */ VIPS_IMAGE_SETBUF_FOREIGN, /* memory array, don't free on close */
VIPS_IMAGE_OPENIN, /* input from fd with a window */ VIPS_IMAGE_OPENIN, /* input from fd with a window */
VIPS_IMAGE_MMAPIN, /* memory mapped input file */ VIPS_IMAGE_MMAPIN, /* memory mapped input file */
VIPS_IMAGE_MMAPINRW, /* memory mapped read/write file */ VIPS_IMAGE_MMAPINRW, /* memory mapped read/write file */
VIPS_IMAGE_OPENOUT, /* output to fd */ VIPS_IMAGE_OPENOUT, /* output to fd */
VIPS_IMAGE_PARTIAL /* partial image */ VIPS_IMAGE_PARTIAL /* partial image */
} VipsImageType; } VipsImageType;
/** /**
* VipsInterpretation: * VipsInterpretation:
* @VIPS_TYPE_MULTIBAND: generic many-band image * @VIPS_INTERPREATION_MULTIBAND: generic many-band image
* @VIPS_TYPE_B_W: some kind of single-band image * @VIPS_INTERPREATION_B_W: some kind of single-band image
* @VIPS_TYPE_HISTOGRAM: a 1D image such as a histogram or lookup table * @VIPS_INTERPREATION_HISTOGRAM: a 1D image such as a histogram or lookup
* @VIPS_TYPE_FOURIER: image is in fourier space table
* @VIPS_TYPE_XYZ: the first three bands are colours in CIE XYZ colourspace * @VIPS_INTERPREATION_FOURIER: image is in fourier space
* @VIPS_TYPE_LAB: pixels are in CIE Lab space * @VIPS_INTERPREATION_XYZ: the first three bands are CIE XYZ
* @VIPS_TYPE_CMYK: the first four bands are in CMYK space * @VIPS_INTERPREATION_LAB: pixels are in CIE Lab space
* @VIPS_TYPE_LABQ: implies #VIPS_CODING_LABQ * @VIPS_INTERPREATION_CMYK: the first four bands are in CMYK space
* @VIPS_TYPE_RGB: generic RGB space * @VIPS_INTERPREATION_LABQ: implies #VIPS_CODING_LABQ
* @VIPS_TYPE_UCS: a uniform colourspace based on CMC * @VIPS_INTERPREATION_RGB: generic RGB space
* @VIPS_TYPE_LCH: pixels are in CIE LCh space * @VIPS_INTERPREATION_UCS: a uniform colourspace based on CMC
* @VIPS_TYPE_LABS: pixels are CIE LAB coded as three signed 16-bit values * @VIPS_INTERPREATION_LCH: pixels are in CIE LCh space
* @VIPS_TYPE_sRGB: pixels are sRGB * @VIPS_INTERPREATION_LABS: CIE LAB coded as three signed 16-bit values
* @VIPS_TYPE_YXY: pixels are CIE Yxy * @VIPS_INTERPREATION_sRGB: pixels are sRGB
* @VIPS_TYPE_RGB16: generic 16-bit RGB * @VIPS_INTERPREATION_YXY: pixels are CIE Yxy
* @VIPS_TYPE_GREY16: generic 16-bit mono * @VIPS_INTERPREATION_RGB16: generic 16-bit RGB
* @VIPS_INTERPREATION_GREY16: generic 16-bit mono
* @VIPS_INTERPREATION_ARRAY: an array
* *
* How the values in an image should be interpreted. For example, a * How the values in an image should be interpreted. For example, a
* three-band float image of type #VIPS_TYPE_LAB should have its pixels * three-band float image of type #VIPS_INTERPREATION_LAB should have its p ixels
* interpreted as coordinates in CIE Lab space. * interpreted as coordinates in CIE Lab space.
* *
* These values are set by operations as hints to user-interfaces built on top * These values are set by operations as hints to user-interfaces built on top
* of VIPS to help them show images to the user in a meaningful way. * of VIPS to help them show images to the user in a meaningful way.
* Operations do not use these values to decide their action. * Operations do not use these values to decide their action.
* *
* The gaps in the numbering are historical and must be maintained. Allocat e * The gaps in the numbering are historical and must be maintained. Allocat e
* new numbers from the end. * new numbers from the end.
*/ */
typedef enum { typedef enum {
VIPS_INTERPRETATION_ERROR = -1,
VIPS_INTERPRETATION_MULTIBAND = 0, VIPS_INTERPRETATION_MULTIBAND = 0,
VIPS_INTERPRETATION_B_W = 1, VIPS_INTERPRETATION_B_W = 1,
VIPS_INTERPRETATION_HISTOGRAM = 10, VIPS_INTERPRETATION_HISTOGRAM = 10,
VIPS_INTERPRETATION_FOURIER = 24, VIPS_INTERPRETATION_FOURIER = 24,
VIPS_INTERPRETATION_XYZ = 12, VIPS_INTERPRETATION_XYZ = 12,
VIPS_INTERPRETATION_LAB = 13, VIPS_INTERPRETATION_LAB = 13,
VIPS_INTERPRETATION_CMYK = 15, VIPS_INTERPRETATION_CMYK = 15,
VIPS_INTERPRETATION_LABQ = 16, VIPS_INTERPRETATION_LABQ = 16,
VIPS_INTERPRETATION_RGB = 17, VIPS_INTERPRETATION_RGB = 17,
VIPS_INTERPRETATION_UCS = 18, VIPS_INTERPRETATION_UCS = 18,
VIPS_INTERPRETATION_LCH = 19, VIPS_INTERPRETATION_LCH = 19,
VIPS_INTERPRETATION_LABS = 21, VIPS_INTERPRETATION_LABS = 21,
VIPS_INTERPRETATION_sRGB = 22, VIPS_INTERPRETATION_sRGB = 22,
VIPS_INTERPRETATION_YXY = 23, VIPS_INTERPRETATION_YXY = 23,
VIPS_INTERPRETATION_RGB16 = 25, VIPS_INTERPRETATION_RGB16 = 25,
VIPS_INTERPRETATION_GREY16 = 26 VIPS_INTERPRETATION_GREY16 = 26,
VIPS_INTERPRETATION_ARRAY = 27
} VipsInterpretation; } VipsInterpretation;
/** /**
* VipsBandFormat: * VipsBandFormat:
* @VIPS_FORMAT_NOTSET: invalid setting * @VIPS_FORMAT_NOTSET: invalid setting
* @VIPS_FORMAT_UCHAR: unsigned char format * @VIPS_FORMAT_UCHAR: unsigned char format
* @VIPS_FORMAT_CHAR: char format * @VIPS_FORMAT_CHAR: char format
* @VIPS_FORMAT_USHORT: unsigned short format * @VIPS_FORMAT_USHORT: unsigned short format
* @VIPS_FORMAT_SHORT: short format * @VIPS_FORMAT_SHORT: short format
* @VIPS_FORMAT_UINT: unsigned int format * @VIPS_FORMAT_UINT: unsigned int format
skipping to change at line 207 skipping to change at line 212
* How pixels are coded. * How pixels are coded.
* *
* Normally, pixels are uncoded and can be manipulated as you would expect. * Normally, pixels are uncoded and can be manipulated as you would expect.
* However some file formats code pixels for compression, and sometimes it' s * However some file formats code pixels for compression, and sometimes it' s
* useful to be able to manipulate images in the coded format. * useful to be able to manipulate images in the coded format.
* *
* The gaps in the numbering are historical and must be maintained. Allocat e * The gaps in the numbering are historical and must be maintained. Allocat e
* new numbers from the end. * new numbers from the end.
*/ */
typedef enum { typedef enum {
VIPS_CODING_ERROR = -1,
VIPS_CODING_NONE = 0, VIPS_CODING_NONE = 0,
VIPS_CODING_LABQ = 2, VIPS_CODING_LABQ = 2,
VIPS_CODING_RAD = 6 VIPS_CODING_RAD = 6,
VIPS_CODING_LAST = 7
} VipsCoding; } VipsCoding;
/* Struct we keep a record of execution time in. Passed to eval signal so /* Struct we keep a record of execution time in. Passed to eval signal so
* it can assess progress. * it can assess progress.
*/ */
typedef struct { typedef struct _VipsProgress {
/*< private >*/ /*< private >*/
struct _VipsImage *im; /* Image we are part of */ struct _VipsImage *im; /* Image we are part of */
/*< public >*/ /*< public >*/
int run; /* Time we have been running */ int run; /* Time we have been running */
int eta; /* Estimated seconds of computation left */ int eta; /* Estimated seconds of computation left */
gint64 tpels; /* Number of pels we expect to calculate */ gint64 tpels; /* Number of pels we expect to calculate */
gint64 npels; /* Number of pels calculated so far */ gint64 npels; /* Number of pels calculated so far */
int percent; /* Percent complete */ int percent; /* Percent complete */
GTimer *start; /* Start time */ GTimer *start; /* Start time */
skipping to change at line 259 skipping to change at line 266
* Don't use them though, use vips_image_get_width() and friends. * Don't use them though, use vips_image_get_width() and friends.
*/ */
int Xsize; /* image width, in pixels */ int Xsize; /* image width, in pixels */
int Ysize; /* image height, in pixels */ int Ysize; /* image height, in pixels */
int Bands; /* number of image bands */ int Bands; /* number of image bands */
VipsBandFormat BandFmt; /* pixel format */ VipsBandFormat BandFmt; /* pixel format */
VipsCoding Coding; /* pixel coding */ VipsCoding Coding; /* pixel coding */
VipsInterpretation Type;/* pixel interpretation */ VipsInterpretation Type;/* pixel interpretation */
float Xres; /* horizontal pixels per millimetre */ double Xres; /* horizontal pixels per millimetre */
float Yres; /* vertical pixels per millimetre */ double Yres; /* vertical pixels per millimetre */
int Xoffset; /* image origin hint */ int Xoffset; /* image origin hint */
int Yoffset; /* image origin hint */ int Yoffset; /* image origin hint */
/* No longer used, the names are here for compat with very, very old /* No longer used, the names are here for compat with very, very old
* code. * code.
*/ */
int Length; int Length;
short Compression; short Compression;
short Level; short Level;
skipping to change at line 283 skipping to change at line 290
/* Old code expects to see this member, newer code has a param on /* Old code expects to see this member, newer code has a param on
* eval(). * eval().
*/ */
VipsProgress *time; VipsProgress *time;
/* Derived fields that some code can fiddle with. New code should us e /* Derived fields that some code can fiddle with. New code should us e
* vips_image_get_history() and friends. * vips_image_get_history() and friends.
*/ */
char *Hist; /* don't use, see vips_image_get_history() * / char *Hist; /* don't use, see vips_image_get_history() * /
char *filename; /* pointer to copy of filename */ char *filename; /* pointer to copy of filename */
char *data; /* start of image data for WIO */ VipsPel *data; /* start of image data for WIO */
int kill; /* set to non-zero to block eval */ int kill; /* set to non-zero to block eval */
/* Everything below this private and only used internally by /* Everything below this private and only used internally by
* VipsImage. * VipsImage.
*/ */
/* During vips image read and write we need temporary float-sized
* fields in the struct for staging xres/yres. Don't use these any
* other time.
*/
float Xres_float;
float Yres_float;
char *mode; /* mode string passed to _new() */ char *mode; /* mode string passed to _new() */
VipsImageType dtype; /* descriptor type */ VipsImageType dtype; /* descriptor type */
int fd; /* file descriptor */ int fd; /* file descriptor */
char *baseaddr; /* pointer to the start of an mmap file */ void *baseaddr; /* pointer to the start of an mmap file */
size_t length; /* size of mmap area */ size_t length; /* size of mmap area */
guint32 magic; /* magic from header, endian-ness of image * / guint32 magic; /* magic from header, endian-ness of image * /
/* Partial image stuff. All these fields are initialised /* Partial image stuff. All these fields are initialised
* to NULL and ignored unless set by vips_image_generate() etc. * to NULL and ignored unless set by vips_image_generate() etc.
*/ */
void *(*start)(); /* user-supplied start function */ void *(*start_fn)(); /* user-supplied start function */
int (*generate)(); /* user-supplied generate function */ int (*generate_fn)(); /* user-supplied generate function */
int (*stop)(); /* user-supplied stop function */ int (*stop_fn)(); /* user-supplied stop function */
void *client1; /* user arguments */ void *client1; /* user arguments */
void *client2; void *client2;
GMutex *sslock; /* start-stop lock */ GMutex *sslock; /* start-stop lock */
GSList *regions; /* list of regions current for this image */ GSList *regions; /* list of regions current for this image */
VipsDemandStyle dhint; /* demand style hint */ VipsDemandStyle dhint; /* demand style hint */
/* Extra user-defined fields ... see vips_image_get() etc. /* Extra user-defined fields ... see vips_image_get() etc.
*/ */
GHashTable *meta; /* GhashTable of GValue */ GHashTable *meta; /* GhashTable of GValue */
GSList *meta_traverse; /* traverse order for Meta */ GSList *meta_traverse; /* traverse order for Meta */
/* Part of mmap() read ... the sizeof() the header we skip from the /* Part of mmap() read ... the sizeof() the header we skip from the
* file start. Usually VIPS_SIZEOF_HEADER, but can be something else * file start. Usually VIPS_SIZEOF_HEADER, but can be something else
* for binary file read. * for binary file read.
*
* gint64 so that we can guarantee to work even on systems with
* strange ideas about large files.
*/ */
int sizeof_header; guint64 sizeof_header;
/* If this is a large disc image, don't map the whole thing, instead /* If this is a large disc image, don't map the whole thing, instead
* have a set of windows shared between the regions active on the * have a set of windows shared between the regions active on the
* image. List of VipsWindow. * image. List of VipsWindow.
*/ */
GSList *windows; GSList *windows;
/* Upstream/downstream relationships, built from args to /* Upstream/downstream relationships, built from args to
* vips_demand_hint(). * vips_demand_hint().
* *
skipping to change at line 373 skipping to change at line 390
/* Delete-on-close is hard to do with signals and callbacks since we /* Delete-on-close is hard to do with signals and callbacks since we
* really need to do this in finalize after the fd has been closed, * really need to do this in finalize after the fd has been closed,
* but you can't emit signals then. * but you can't emit signals then.
* *
* Also keep a private copy of the filename string to be deleted, * Also keep a private copy of the filename string to be deleted,
* since image->filename will be freed in _dispose(). * since image->filename will be freed in _dispose().
*/ */
gboolean delete_on_close; gboolean delete_on_close;
char *delete_on_close_filename; char *delete_on_close_filename;
} VipsImage; } VipsImage;
typedef struct _VipsImageClass { typedef struct _VipsImageClass {
VipsObjectClass parent_class; VipsObjectClass parent_class;
/* Signals we emit. /* Signals we emit.
*/ */
/* Evaluation is starting. /* Evaluation is starting.
*/ */
skipping to change at line 410 skipping to change at line 426
/* An image has been modified in some way and all caches /* An image has been modified in some way and all caches
* need dropping. * need dropping.
*/ */
void (*invalidate)( VipsImage *image ); void (*invalidate)( VipsImage *image );
} VipsImageClass; } VipsImageClass;
GType vips_image_get_type( void ); GType vips_image_get_type( void );
/* Has to be guint64 and not size_t/off_t since we have to be able to addre
ss
* huge images on platforms with 32-bit files.
*/
extern const guint64 vips__image_sizeof_bandformat[]; extern const guint64 vips__image_sizeof_bandformat[];
/* Pixel address calculation macros. /* Pixel address calculation macros.
*/ */
#define VIPS_IMAGE_SIZEOF_ELEMENT( I ) \ #define VIPS_IMAGE_SIZEOF_ELEMENT( I ) \
(vips__image_sizeof_bandformat[(I)->BandFmt]) (vips__image_sizeof_bandformat[(I)->BandFmt])
#define VIPS_IMAGE_SIZEOF_PEL( I ) \ #define VIPS_IMAGE_SIZEOF_PEL( I ) \
(VIPS_IMAGE_SIZEOF_ELEMENT( I ) * (I)->Bands) (VIPS_IMAGE_SIZEOF_ELEMENT( I ) * (I)->Bands)
#define VIPS_IMAGE_SIZEOF_LINE( I ) \ #define VIPS_IMAGE_SIZEOF_LINE( I ) \
(VIPS_IMAGE_SIZEOF_PEL( I ) * (I)->Xsize) (VIPS_IMAGE_SIZEOF_PEL( I ) * (I)->Xsize)
#define VIPS_IMAGE_SIZEOF_IMAGE( I ) \ #define VIPS_IMAGE_SIZEOF_IMAGE( I ) \
(VIPS_IMAGE_SIZEOF_LINE( I ) * (I)->Ysize) (VIPS_IMAGE_SIZEOF_LINE( I ) * (I)->Ysize)
#define VIPS_IMAGE_N_ELEMENTS( I ) \ #define VIPS_IMAGE_N_ELEMENTS( I ) \
((I)->Bands * (I)->Xsize) ((I)->Bands * (I)->Xsize)
#define VIPS_IMAGE_N_PELS( I ) \
((guint64) (I)->Xsize * (I)->Ysize)
/* If VIPS_DEBUG is defined, add bounds checking. /* If VIPS_DEBUG is defined, add bounds checking.
*/ */
#ifdef VIPS_DEBUG #ifdef VIPS_DEBUG
#define VIPS_IMAGE_ADDR( I, X, Y ) \ #define VIPS_IMAGE_ADDR( I, X, Y ) \
( ((X) >= 0 && (X) < (I)->Xsize && \ ( ((X) >= 0 && (X) < (I)->Xsize && \
(Y) >= 0 && (Y) < (I)->Ysize) ? \ (Y) >= 0 && (Y) < (I)->Ysize) ? \
((I)->data + \ ((I)->data + \
(Y) * VIPS_IMAGE_SIZEOF_LINE( I ) + \ (Y) * VIPS_IMAGE_SIZEOF_LINE( I ) + \
(X) * VIPS_IMAGE_SIZEOF_PEL( I )) : \ (X) * VIPS_IMAGE_SIZEOF_PEL( I )) : \
(fprintf( stderr, \ (fprintf( stderr, \
"VIPS_IMAGE_ADDR: point out of bounds, " \ "VIPS_IMAGE_ADDR: point out of bounds, " \
"file \"%s\", line %d\n" \ "file \"%s\", line %d\n" \
"(point x=%d, y=%d\n" \ "(point x=%d, y=%d\n" \
" should have been within VipsRect left=%d, top=%d, " \ " should have been within VipsRect left=%d, top=%d, " \
"width=%d, height=%d)\n", \ "width=%d, height=%d)\n", \
__FILE__, __LINE__, \ __FILE__, __LINE__, \
(X), (Y), \ (X), (Y), \
0, 0, \ 0, 0, \
(I)->Xsize, \ (I)->Xsize, \
(I)->Ysize ), abort(), (char *) NULL) \ (I)->Ysize ), abort(), (VipsPel *) NULL) \
) )
#else /*!VIPS_DEBUG*/ #else /*!VIPS_DEBUG*/
#define VIPS_IMAGE_ADDR( I, X, Y ) \ #define VIPS_IMAGE_ADDR( I, X, Y ) \
((I)->data + \ ((I)->data + \
(Y) * VIPS_IMAGE_SIZEOF_LINE( I ) + \ (Y) * VIPS_IMAGE_SIZEOF_LINE( I ) + \
(X) * VIPS_IMAGE_SIZEOF_PEL( I )) (X) * VIPS_IMAGE_SIZEOF_PEL( I ))
#endif /*VIPS_DEBUG*/ #endif /*VIPS_DEBUG*/
int vips_image_written( VipsImage *image ); int vips_image_written( VipsImage *image );
skipping to change at line 466 skipping to change at line 487
void vips_image_preeval( VipsImage *image ); void vips_image_preeval( VipsImage *image );
void vips_image_eval( VipsImage *image, int w, int h ); void vips_image_eval( VipsImage *image, int w, int h );
void vips_image_posteval( VipsImage *image ); 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_get_kill( VipsImage *image ); gboolean vips_image_get_kill( VipsImage *image );
void vips_image_set_kill( VipsImage *image, gboolean kill ); void vips_image_set_kill( VipsImage *image, gboolean kill );
VipsImage *vips_image_new( void ); VipsImage *vips_image_new( void );
int vips_image_new_array( VipsObject *parent, VipsImage **images, int n );
VipsImage *vips_image_new_mode( const char *filename, const char *mode ); VipsImage *vips_image_new_mode( const char *filename, const char *mode );
VipsImage *vips_image_new_buffer( void );
VipsImage *vips_image_new_from_file( const char *filename ); VipsImage *vips_image_new_from_file( 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, int 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_array( int xsize, int ysize );
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_disc_temp( const char *format ); VipsImage *vips_image_new_disc_temp( const char *format );
int vips_image_write( VipsImage *image, const char *filename ); int vips_image_write( VipsImage *image, VipsImage *out );
int vips_image_write_to_file( VipsImage *image, const char *filename );
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_write_line( VipsImage *image, int ypos, PEL *linebuffer );
int vips_image_wio_input( VipsImage *image ); int vips_image_wio_input( VipsImage *image );
int vips_image_wio_output( VipsImage *image );
int vips_image_inplace( 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_write_prepare( VipsImage *image );
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_isfloat( VipsBandFormat format ); gboolean vips_band_format_isfloat( VipsBandFormat format );
gboolean vips_band_format_iscomplex( VipsBandFormat format ); gboolean vips_band_format_iscomplex( VipsBandFormat format );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
 End of changes. 32 change blocks. 
42 lines changed or deleted 67 lines changed or added


 inplace.h   inplace.h 
skipping to change at line 41 skipping to change at line 41
*/ */
#ifndef IM_INPLACE_H #ifndef IM_INPLACE_H
#define IM_INPLACE_H #define IM_INPLACE_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
int im_draw_rect( VipsImage *image, int im_draw_rect( VipsImage *image,
int left, int top, int width, int height, int fill, PEL *ink ); int left, int top, int width, int height, int fill, VipsPel *ink );
int im_draw_circle( VipsImage *image, int im_draw_circle( VipsImage *image,
int x, int y, int radius, gboolean fill, PEL *ink ); int x, int y, int radius, gboolean fill, 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 );
typedef int (*VipsPlotFn)( VipsImage *image, int x, int y, typedef int (*VipsPlotFn)( VipsImage *image, int x, int y,
void *a, void *b, void *c ); 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 x1, int y1, int x2, int y2, PEL *in int im_draw_line( VipsImage *image,
k ); 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_draw_flood( VipsImage *image, int x, int y, PEL *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 x, int y, PEL *ink, VipsRect int im_draw_flood_blob( VipsImage *image,
*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_mask( VipsImage *image, int im_draw_mask( VipsImage *image,
VipsImage *mask_im, int x, int y, PEL *ink ); VipsImage *mask_im, int x, int y, VipsPel *ink );
int im_draw_point( VipsImage *image, int x, int y, PEL *ink ); int im_draw_point( VipsImage *image, int x, int y, VipsPel *ink );
int im_read_point( VipsImage *image, int x, int y, PEL *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,
int left, int top, int width, int height ); int left, int top, int width, int height );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_INPLACE_H*/ #endif /*IM_INPLACE_H*/
 End of changes. 6 change blocks. 
11 lines changed or deleted 11 lines changed or added


 interpolate.h   interpolate.h 
skipping to change at line 64 skipping to change at line 64
typedef struct _VipsInterpolate { typedef struct _VipsInterpolate {
VipsObject parent_object; VipsObject parent_object;
} VipsInterpolate; } VipsInterpolate;
/* An interpolation function. This is a class method, but we have a lookup /* An interpolation function. This is a class method, but we have a lookup
* function for it to speed up dispatch. Write to the memory at "out", * function for it to speed up dispatch. Write to the memory at "out",
* interpolate the value at position (x, y) in "in". * interpolate the value at position (x, y) in "in".
*/ */
typedef void (*VipsInterpolateMethod)( VipsInterpolate *interpolate, typedef void (*VipsInterpolateMethod)( VipsInterpolate *interpolate,
PEL *out, VipsRegion *in, double x, double y ); void *out, VipsRegion *in, double x, double y );
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 .
skipping to change at line 91 skipping to change at line 91
/* 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 * );
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,
PEL *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 );
/* How many bits of precision we keep for transformations, ie. how many /* How many bits of precision we keep for transformations, ie. how many
* pre-computed matricies we have. * pre-computed matricies we have.
*/ */
#define VIPS_TRANSFORM_SHIFT (6) #define VIPS_TRANSFORM_SHIFT (6)
#define VIPS_TRANSFORM_SCALE (1 << VIPS_TRANSFORM_SHIFT) #define VIPS_TRANSFORM_SCALE (1 << VIPS_TRANSFORM_SHIFT)
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 mask.h   mask.h 
skipping to change at line 58 skipping to change at line 58
typedef struct im__DOUBLEMASK { typedef struct im__DOUBLEMASK {
int xsize; int xsize;
int ysize; int ysize;
double scale; double scale;
double offset; double offset;
double *coeff; double *coeff;
char *filename; char *filename;
} DOUBLEMASK; } DOUBLEMASK;
#define VIPS_MASK( M, X, Y ) ((M)->coeff[(X) + (Y) * (M)->xsize])
INTMASK *im_create_imask( const char *filename, int xsize, int ysize ); INTMASK *im_create_imask( const char *filename, int xsize, int ysize );
INTMASK *im_create_imaskv( const char *filename, int xsize, int ysize, ... ); INTMASK *im_create_imaskv( const char *filename, int xsize, int ysize, ... );
DOUBLEMASK *im_create_dmask( const char *filename, int xsize, int ysize ); DOUBLEMASK *im_create_dmask( const char *filename, int xsize, int ysize );
DOUBLEMASK *im_create_dmaskv( const char *filename, int xsize, int ysize, . .. ); DOUBLEMASK *im_create_dmaskv( const char *filename, int xsize, int ysize, . .. );
INTMASK *im_read_imask( const char *filename ); INTMASK *im_read_imask( const char *filename );
DOUBLEMASK *im_read_dmask( const char *filename ); DOUBLEMASK *im_read_dmask( const char *filename );
void im_print_imask( INTMASK *in ); void im_print_imask( INTMASK *in );
void im_print_dmask( DOUBLEMASK *in ); void im_print_dmask( DOUBLEMASK *in );
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 memory.h   memory.h 
skipping to change at line 47 skipping to change at line 47
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#define VIPS_FREEF( F, S ) \ #define VIPS_FREEF( F, S ) \
G_STMT_START { \ G_STMT_START { \
if( S ) { \ if( S ) { \
(void) F( (S) ); \ (void) F( (S) ); \
(S) = 0; \ (S) = 0; \
} \ } \
} G_STMT_END } G_STMT_END
/* Can't just use VIPS_FREEF(), we want the extra cast to void on the argum #define VIPS_FREE( S ) VIPS_FREEF( g_free, (S) );
ent
* to vips_free() to make sure we can work for "const char *" variables.
*/
#define VIPS_FREE( S ) \
G_STMT_START { \
if( S ) { \
(void) vips_free( (void *) (S) ); \
(S) = 0; \
} \
} G_STMT_END
#define VIPS_SETSTR( S, V ) \ #define VIPS_SETSTR( S, V ) \
G_STMT_START { \ G_STMT_START { \
const char *sst = (V); \ const char *sst = (V); \
\ \
if( (S) != sst ) { \ if( (S) != sst ) { \
if( !(S) || !sst || strcmp( (S), sst ) != 0 ) { \ if( !(S) || !sst || strcmp( (S), sst ) != 0 ) { \
VIPS_FREE( S ); \ VIPS_FREE( S ); \
if( sst ) \ if( sst ) \
(S) = vips_strdup( NULL, sst ); \ (S) = g_strdup( sst ); \
} \ } \
} \ } \
} G_STMT_END } G_STMT_END
#define VIPS_NEW( IM, T ) ((T *) vips_malloc( (IM), sizeof( T ))) #define VIPS_NEW( OBJ, T ) \
#define VIPS_ARRAY( IM, N, T ) ((T *) vips_malloc( (IM), (N) * sizeof( T )) ((T *) vips_malloc( VIPS_OBJECT( OBJ ), sizeof( T )))
) #define VIPS_ARRAY( OBJ, N, T ) \
((T *) vips_malloc( VIPS_OBJECT( OBJ ), (N) * sizeof( T )))
void *vips_malloc( VipsImage *image, size_t size );
int vips_free( void *s ); void *vips_malloc( VipsObject *object, size_t size );
char *vips_strdup( VipsObject *object, const char *str );
char *vips_strdup( VipsImage *image, const char *str ); int vips_free( void *buf );
void vips_tracked_free( void *s );
void *vips_tracked_malloc( size_t size );
size_t vips_tracked_get_mem( void );
size_t vips_tracked_get_mem_highwater( void );
int vips_tracked_get_allocs( void );
int vips_tracked_open( const char *pathname, int flags, ... );
int vips_tracked_close( int fd );
int vips_tracked_get_files( void );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_MEMORY_H*/ #endif /*IM_MEMORY_H*/
 End of changes. 3 change blocks. 
20 lines changed or deleted 20 lines changed or added


 mosaicing.h   mosaicing.h 
skipping to change at line 40 skipping to change at line 40
*/ */
#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 im_lrmerge( VipsImage *ref, VipsImage *sec, VipsImage *out, int im_lrmerge( VipsImage *ref, VipsImage *sec, VipsImage *out,
int dx, int dy, int mwidth ); int dx, int dy, int mwidth );
int im_tbmerge( VipsImage *ref, VipsImage *sec, VipsImage *out, int im_tbmerge( VipsImage *ref, VipsImage *sec, VipsImage *out,
int dx, int dy, int mwidth ); int dx, int dy, int mwidth );
int im_lrmerge1( VipsImage *ref, VipsImage *sec, VipsImage *out, int im_lrmerge1( VipsImage *ref, VipsImage *sec, VipsImage *out,
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 mwidth ); int mwidth );
int im_tbmerge1( VipsImage *ref, VipsImage *sec, VipsImage *out, int im_tbmerge1( VipsImage *ref, VipsImage *sec, VipsImage *out,
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 object.h   object.h 
skipping to change at line 53 skipping to change at line 53
/* Track extra stuff for arguments to objects /* Track extra stuff for arguments to objects
*/ */
/** /**
* VipsArgumentFlags: * VipsArgumentFlags:
* @VIPS_ARGUMENT_NONE: no flags * @VIPS_ARGUMENT_NONE: no flags
* @VIPS_ARGUMENT_REQUIRED: must be set in the constructor * @VIPS_ARGUMENT_REQUIRED: must be set in the constructor
* @VIPS_ARGUMENT_CONSTRUCT: can only 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_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_INPUT: is an input argument (one we depend on)
* @VIPS_ARGUMENT_OUTPUT: is an output argument (depends on us) * @VIPS_ARGUMENT_OUTPUT: is an output argument (depends on us)
* *
* Flags we associate with each object argument. * Flags we associate with each object argument.
* *
* Have separate input & output flags. Both set is an error; neither set is OK. * Have separate input & output flags. Both set is an error; neither set is OK.
* *
* Input gobjects are automatically reffed, output gobjects automatically r ef * Input gobjects are automatically reffed, output gobjects automatically r ef
* us. We also automatically watch for "destroy" and unlink. * 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.
*/ */
typedef enum { 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_INPUT = 8, VIPS_ARGUMENT_SET_ALWAYS = 8,
VIPS_ARGUMENT_OUTPUT = 16 VIPS_ARGUMENT_INPUT = 16,
VIPS_ARGUMENT_OUTPUT = 32
} 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_OUTPUT Eg. the "result" of an add operation VIPS_ARGUMENT_REQUIRED_OUTPUT Eg. the "result" of an add operation
VIPS_ARGUMENT_OPTIONAL_OUTPUT Eg. the x pos of the image minimum
Other combinations are used internally, eg. supplying the cast-table for an Other combinations are used internally, eg. supplying the cast-table for an
arithmetic operation arithmetic operation
*/ */
#define VIPS_ARGUMENT_REQUIRED_INPUT \ #define VIPS_ARGUMENT_REQUIRED_INPUT \
(VIPS_ARGUMENT_INPUT | \ (VIPS_ARGUMENT_INPUT | \
VIPS_ARGUMENT_REQUIRED | \ VIPS_ARGUMENT_REQUIRED | \
VIPS_ARGUMENT_CONSTRUCT | \ VIPS_ARGUMENT_CONSTRUCT)
VIPS_ARGUMENT_SET_ONCE)
#define VIPS_ARGUMENT_OPTIONAL_INPUT \ #define VIPS_ARGUMENT_OPTIONAL_INPUT \
(VIPS_ARGUMENT_INPUT | \ (VIPS_ARGUMENT_INPUT | \
VIPS_ARGUMENT_CONSTRUCT | \ VIPS_ARGUMENT_CONSTRUCT)
VIPS_ARGUMENT_SET_ONCE)
#define VIPS_ARGUMENT_REQUIRED_OUTPUT \ #define VIPS_ARGUMENT_REQUIRED_OUTPUT \
(VIPS_ARGUMENT_OUTPUT | \ (VIPS_ARGUMENT_OUTPUT | \
VIPS_ARGUMENT_REQUIRED | \ VIPS_ARGUMENT_REQUIRED | \
VIPS_ARGUMENT_CONSTRUCT | \ VIPS_ARGUMENT_CONSTRUCT)
VIPS_ARGUMENT_SET_ONCE)
#define VIPS_ARGUMENT_OPTIONAL_OUTPUT \
(VIPS_ARGUMENT_OUTPUT | \
VIPS_ARGUMENT_CONSTRUCT)
extern int _vips__argument_id;
#define VIPS_ARG_IMAGE( CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET )
{ \
GParamSpec *pspec; \
\
pspec = g_param_spec_object( (NAME), (LONG), (DESC), \
VIPS_TYPE_IMAGE, \
G_PARAM_READWRITE ); \
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \
}
#define VIPS_ARG_BOOL( CLASS, NAME, PRIORITY, LONG, DESC, \
FLAGS, OFFSET, VALUE ) { \
GParamSpec *pspec; \
\
pspec = g_param_spec_boolean( (NAME), (LONG), (DESC), \
(VALUE), \
G_PARAM_READWRITE ); \
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \
}
#define VIPS_ARG_DOUBLE( CLASS, NAME, PRIORITY, LONG, DESC, \
FLAGS, OFFSET, MIN, MAX, VALUE ) { \
GParamSpec *pspec; \
\
pspec = g_param_spec_double( (NAME), (LONG), (DESC), \
(MIN), (MAX), (VALUE), \
G_PARAM_READWRITE );\
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \
}
#define VIPS_ARG_BOXED( CLASS, NAME, PRIORITY, LONG, DESC, \
FLAGS, OFFSET, TYPE ) { \
GParamSpec *pspec; \
\
pspec = g_param_spec_boxed( (NAME), (LONG), (DESC), \
(TYPE), \
G_PARAM_READWRITE );\
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \
}
#define VIPS_ARG_INT( CLASS, NAME, PRIORITY, LONG, DESC, \
FLAGS, OFFSET, MIN, MAX, VALUE ) { \
GParamSpec *pspec; \
\
pspec = g_param_spec_int( (NAME), (LONG), (DESC), \
(MIN), (MAX), (VALUE), \
G_PARAM_READWRITE );\
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \
}
#define VIPS_ARG_UINT64( CLASS, NAME, PRIORITY, LONG, DESC, \
FLAGS, OFFSET, MIN, MAX, VALUE ) { \
GParamSpec *pspec; \
\
pspec = g_param_spec_uint64( (NAME), (LONG), (DESC), \
(MIN), (MAX), (VALUE), \
G_PARAM_READWRITE );\
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \
}
#define VIPS_ARG_ENUM( CLASS, NAME, PRIORITY, LONG, DESC, \
FLAGS, OFFSET, TYPE, VALUE ) { \
GParamSpec *pspec; \
\
pspec = g_param_spec_enum( (NAME), (LONG), (DESC), \
(TYPE), (VALUE), \
G_PARAM_READWRITE );\
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \
}
#define VIPS_ARG_FLAGS( CLASS, NAME, PRIORITY, LONG, DESC, \
FLAGS, OFFSET, TYPE, VALUE ) { \
GParamSpec *pspec; \
\
pspec = g_param_spec_flags( (NAME), (LONG), (DESC), \
(TYPE), (VALUE), \
G_PARAM_READWRITE );\
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \
}
#define VIPS_ARG_STRING( CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET,
\
VALUE ) { \
GParamSpec *pspec; \
\
pspec = g_param_spec_string( (NAME), (LONG), (DESC), \
(VALUE), \
G_PARAM_READWRITE ); \
g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \
_vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (FLAGS), (PRIORITY), (OFFSET) ); \
}
#define VIPS_ARG_POINTER( CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET
) { \
GParamSpec *pspec; \
\
pspec = g_param_spec_pointer( (NAME), (LONG), (DESC), \
G_PARAM_READWRITE ); \
g_object_class_install_property( gobject_class, \
_vips__argument_id++, pspec ); \
vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \
pspec, (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;
/* Keep one of these in the class struct for every argument. /* Keep one of these in the class struct for every argument.
*/ */
typedef struct _VipsArgumentClass { typedef struct _VipsArgumentClass {
VipsArgument parent; VipsArgument parent;
/* The class of the object we are an arg for. /* The class of the object we are an arg for.
*/ */
VipsObjectClass *object_class; VipsObjectClass *object_class;
VipsArgumentFlags flags; VipsArgumentFlags flags;
int priority; /* Order args by this */
guint offset; /* G_STRUCT_OFFSET of member in object */ guint offset; /* G_STRUCT_OFFSET of member in object */
} VipsArgumentClass; } VipsArgumentClass;
/* Keep one of these in the object struct for every argument instance. /* Keep one of these in the object struct for every argument instance.
*/ */
typedef struct _VipsArgumentInstance { typedef struct _VipsArgumentInstance {
VipsArgument parent; VipsArgument parent;
/* The class we are part of.
*/
VipsArgumentClass *argument_class;
/* The object we are attached to. /* The object we are attached to.
*/ */
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;
} 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 *,
GParamSpec *); GParamSpec * );
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 );
void vips_argument_dispose_all( VipsObject *object ); typedef void *(*VipsArgumentClassMapFn)( VipsObjectClass *, GParamSpec *,
VipsArgumentClass *, void *a, void *b );
void *vips_argument_class_map( VipsObjectClass *object_class,
VipsArgumentClassMapFn fn, void *a, void *b );
int vips_object_get_argument( VipsObject *object, const char *name,
GParamSpec **pspec,
VipsArgumentClass **argument_class,
VipsArgumentInstance **argument_instance );
gboolean vips_object_get_argument_assigned( VipsObject *object,
const char *name );
VipsArgumentFlags vips_object_get_argument_flags( 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
* use vips_argument_map(), the preferred looper. Have the loop code as a * use vips_argument_map(), the preferred looper. Have the loop code as a
* macro as well for these odd cases. * macro as well for these odd cases.
*/ */
#define VIPS_ARGUMENT_FOR_ALL( OBJECT, PSPEC, ARG_CLASS, ARG_INSTANCE ) { \ #define VIPS_ARGUMENT_FOR_ALL( OBJECT, PSPEC, ARG_CLASS, ARG_INSTANCE ) { \
VipsObjectClass *object_class = VIPS_OBJECT_GET_CLASS( OBJECT ); \ VipsObjectClass *object_class = VIPS_OBJECT_GET_CLASS( OBJECT ); \
GSList *p; \ GSList *p; \
\ \
for( p = object_class->argument_table_traverse; p; p = p->next ) { \ for( p = object_class->argument_table_traverse; p; p = p->next ) { \
skipping to change at line 185 skipping to change at line 341
\ \
/* We have many props on the arg table ... filter out the \ /* We have many props on the arg table ... filter out the \
* ones for this class. \ * ones for this class. \
*/ \ */ \
if( g_object_class_find_property( \ if( g_object_class_find_property( \
G_OBJECT_CLASS( object_class ), \ G_OBJECT_CLASS( object_class ), \
g_param_spec_get_name( PSPEC ) ) == PSPEC ) { g_param_spec_get_name( PSPEC ) ) == PSPEC ) {
#define VIPS_ARGUMENT_FOR_ALL_END } } } #define VIPS_ARGUMENT_FOR_ALL_END } } }
/* And some macros to collect args from a va list.
*/
#define VIPS_ARGUMENT_COLLECT_SET( PSPEC, ARG_CLASS, AP ) \
if( (ARG_CLASS->flags & VIPS_ARGUMENT_INPUT) ) { \
GValue value = { 0, }; \
gchar *error = NULL; \
\
/* Input args are given inline, eg. ("factor", 12.0) \
* and must be collected. \
*/ \
g_value_init( &value, G_PARAM_SPEC_VALUE_TYPE( PSPEC ) ); \
G_VALUE_COLLECT( &value, AP, 0, &error ); \
\
/* Don't bother with the error message. \
*/ \
if( error ) { \
VIPS_DEBUG_MSG( "VIPS_OBJECT_COLLECT_SET: err\n" );
\
g_free( error ); \
}
#define VIPS_ARGUMENT_COLLECT_GET( PSPEC, ARG_CLASS, AP ) \
g_value_unset( &value ); \
} \
else if( (ARG_CLASS->flags & VIPS_ARGUMENT_OUTPUT) ) { \
void **arg __attribute__ ((unused)); \
\
/* Output args are a pointer to where to send the \
* result. \
*/ \
arg = va_arg( AP, void ** );
#define VIPS_ARGUMENT_COLLECT_END \
}
#define VIPS_TYPE_OBJECT (vips_object_get_type()) #define VIPS_TYPE_OBJECT (vips_object_get_type())
#define VIPS_OBJECT( obj ) \ #define VIPS_OBJECT( obj ) \
(G_TYPE_CHECK_INSTANCE_CAST( (obj), VIPS_TYPE_OBJECT, VipsObject )) (G_TYPE_CHECK_INSTANCE_CAST( (obj), VIPS_TYPE_OBJECT, VipsObject ))
#define VIPS_OBJECT_CLASS( klass ) \ #define VIPS_OBJECT_CLASS( klass ) \
(G_TYPE_CHECK_CLASS_CAST( (klass), VIPS_TYPE_OBJECT, VipsObjectClass )) (G_TYPE_CHECK_CLASS_CAST( (klass), VIPS_TYPE_OBJECT, VipsObjectClass ))
#define VIPS_IS_OBJECT( obj ) \ #define VIPS_IS_OBJECT( obj ) \
(G_TYPE_CHECK_INSTANCE_TYPE( (obj), VIPS_TYPE_OBJECT )) (G_TYPE_CHECK_INSTANCE_TYPE( (obj), VIPS_TYPE_OBJECT ))
#define VIPS_IS_OBJECT_CLASS( klass ) \ #define VIPS_IS_OBJECT_CLASS( klass ) \
(G_TYPE_CHECK_CLASS_TYPE( (klass), VIPS_TYPE_OBJECT )) (G_TYPE_CHECK_CLASS_TYPE( (klass), VIPS_TYPE_OBJECT ))
#define VIPS_OBJECT_GET_CLASS( obj ) \ #define VIPS_OBJECT_GET_CLASS( obj ) \
(G_TYPE_INSTANCE_GET_CLASS( (obj), VIPS_TYPE_OBJECT, VipsObjectClass )) (G_TYPE_INSTANCE_GET_CLASS( (obj), VIPS_TYPE_OBJECT, VipsObjectClass ))
struct _VipsObject { struct _VipsObject {
GObject parent_object; GObject parent_object;
gboolean constructed; /* Construct done and checked */ /* Set after ->build() has run succesfully: construct is fully done
* and checked.
*/
gboolean constructed;
/* Set for static objects which are allocated at startup and never
* freed. These objects are ommitted from leak reports.
*/
gboolean static_object;
/* Table of argument instances for this class and any derived classe s. /* Table of argument instances for this class and any derived classe s.
*/ */
VipsArgumentTable *argument_table; VipsArgumentTable *argument_table;
/* Class properties (see below), duplicated in the instance so we ca n /* Class properties (see below), duplicated in the instance so we ca n
* get at them easily via the property system. * get at them easily via the property system.
*/ */
char *nickname; char *nickname;
char *description; char *description;
skipping to change at line 228 skipping to change at line 426
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 );
/* 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.
*/ */
void (*print_class)( struct _VipsObjectClass *, VipsBuf * ); void (*summary_class)( struct _VipsObjectClass *, VipsBuf * );
/* Try to print something about the object, handy for debugging. /* Try to print a one-line summary for the object, handy for debuggi ng.
*/ */
void (*print)( VipsObject *, VipsBuf * ); void (*summary)( VipsObject *, VipsBuf * );
/* Try to print everything about the object, handy for debugging.
*/
void (*dump)( VipsObject *, VipsBuf * );
/* 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 *, VipsBuf * );
/* 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 * );
skipping to change at line 303 skipping to change at line 506
/* Table of arguments for this class and any derived classes. Order /* Table of arguments for this class and any derived classes. Order
* is important, so keep a traverse list too. We can't rely on the * is important, so keep a traverse list too. We can't rely on the
* ordering given by g_object_class_list_properties() since it comes * ordering given by g_object_class_list_properties() since it comes
* from a hash :-( * from a hash :-(
*/ */
VipsArgumentTable *argument_table; VipsArgumentTable *argument_table;
GSList *argument_table_traverse; GSList *argument_table_traverse;
}; };
gboolean vips_pspec_value_is_null( GParamSpec *pspec, 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 );
void vips_object_print_class( VipsObjectClass *klass );
void vips_object_print( VipsObject *object ); void vips_object_summary_class( VipsObjectClass *klass, VipsBuf *buf );
void vips_object_summary( VipsObject *object, VipsBuf *buf );
void vips_object_dump( VipsObject *object, VipsBuf *buf );
void vips_object_print_summary_class( VipsObjectClass *klass );
void vips_object_print_summary( 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 *, void vips_object_class_install_argument( VipsObjectClass *, GParamSpec *psp
GParamSpec *pspec, VipsArgumentFlags flags, guint offset ); ec,
VipsArgumentFlags flags, 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_get_argument_needs_string( VipsObject *object, gboolean vips_object_get_argument_needs_string( 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 *, 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 );
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 *(*VipsTypeMap)( GType, void * ); typedef void *(*VipsTypeMapFn)( GType, void * );
typedef void *(*VipsTypeMap2)( GType, void *, void * ); typedef void *(*VipsTypeMap2Fn)( GType, void *, void * );
typedef void *(*VipsClassMap)( VipsObjectClass *, void * ); typedef void *(*VipsClassMapFn)( VipsObjectClass *, void * );
void *vips_type_map( GType base, VipsTypeMap2 fn, void *a, void *b ); void *vips_type_map( GType base, VipsTypeMap2Fn fn, void *a, void *b );
void *vips_type_map_all( GType base, VipsTypeMap fn, void *a ); void *vips_type_map_all( GType base, VipsTypeMapFn fn, void *a );
void *vips_class_map_all( GType base, VipsClassMap fn, void *a ); int vips_type_depth( GType type );
int vips_class_depth( VipsObjectClass *klass );
VipsObjectClass *vips_class_find( const char *basename, const char *nicknam
e );
GType vips_type_find( const char *basename, const char *nickname ); GType vips_type_find( const char *basename, const char *nickname );
void *vips_class_map_all( GType base, VipsClassMapFn fn, void *a );
VipsObjectClass *vips_class_find( const char *basename, const char *nicknam
e );
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_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 );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_OBJECT_H*/ #endif /*VIPS_OBJECT_H*/
 End of changes. 27 change blocks. 
31 lines changed or deleted 254 lines changed or added


 operation.h   operation.h 
skipping to change at line 37 skipping to change at line 37
*/ */
#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>
#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 ) \
(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 * );
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.
*/
guint hash;
gboolean found_hash;
} VipsOperation; } VipsOperation;
typedef struct _VipsOperationClass { typedef struct _VipsOperationClass {
VipsObjectClass parent_class; VipsObjectClass parent_class;
/* Print the usage message.
*/
void (*usage)( struct _VipsOperationClass *, VipsBuf * );
} VipsOperationClass; } VipsOperationClass;
GType vips_operation_get_type( void ); GType vips_operation_get_type( void );
void vips_operation_class_print_usage( VipsOperationClass *operation_class
);
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, ... );
int vips_call_split( const char *operation_name, va_list optional, ... ); int vips_call_split( const char *operation_name, 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 );
int vips_cache_operation_buildp( VipsOperation **operation );
VipsOperation *vips_cache_operation_build( VipsOperation *operation );
void vips_cache_set_max( int max );
void vips_cache_set_max_mem( size_t max_mem );
int vips_cache_get_max( void );
int vips_cache_get_size( void );
size_t vips_cache_get_max_mem( void );
int vips_cache_get_max_files( void );
void vips_cache_set_max_files( int max_files );
void vips_cache_set_dump( gboolean dump );
void vips_cache_set_trace( gboolean trace );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_OPERATION_H*/ #endif /*VIPS_OPERATION_H*/
 End of changes. 5 change blocks. 
0 lines changed or deleted 31 lines changed or added


 private.h   private.h 
skipping to change at line 58 skipping to change at line 58
/* 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)
typedef unsigned char PEL; /* useful datum */
/* 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 */
int top; /* Area of image we have mapped, in pixels * / int top; /* Area of image we have mapped, in pixels * /
int height; int height;
char *data; /* First pixel of line 'top' */ VipsPel *data; /* First pixel of line 'top' */
PEL *baseaddr; /* Base of window */ void *baseaddr; /* Base of window */
size_t length; /* Size of window */ size_t length; /* Size of window */
} VipsWindow; } VipsWindow;
/* window manager. /* window manager.
*/ */
VipsWindow *vips_window_ref( struct _VipsImage *im, int top, int height ); VipsWindow *vips_window_ref( struct _VipsImage *im, int top, int height );
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 cache. Held in a GPrivate. /* Per-thread buffer cache. Held in a GPrivate.
skipping to change at line 93 skipping to change at line 91
typedef struct { typedef struct {
GHashTable *hash; /* Hash to VipsBufferCacheList* */ GHashTable *hash; /* Hash to VipsBufferCacheList* */
GThread *thread; /* Just for sanity checking */ GThread *thread; /* Just for sanity checking */
} VipsBufferCache; } VipsBufferCache;
/* Per-image buffer cache. Hash to this from VipsBufferCache. /* Per-image buffer cache. Hash to this from VipsBufferCache.
* We can't store the GSList directly in the hash table, as GHashTable lack s an * We can't store the GSList directly in the hash table, as GHashTable lack s 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 { typedef struct _VipsBufferCacheList {
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;
VipsBufferCache *cache; VipsBufferCache *cache;
} VipsBufferCacheList; } VipsBufferCacheList;
/* What we track for each pixel buffer. /* What we track for each pixel buffer.
*/ */
typedef struct { typedef struct _VipsBuffer {
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 */
VipsRect area; /* Area this pixel buffer covers */ VipsRect area; /* Area this pixel buffer covers */
gboolean done; /* Calculated and in cache */ gboolean done; /* Calculated and in cache */
VipsBufferCache *cache; VipsBufferCache *cache;
char *buf; /* Private malloc() area */ VipsPel *buf; /* Private malloc() area */
size_t bsize; /* Size of private malloc() */ size_t bsize; /* Size of private malloc() */
} VipsBuffer; } VipsBuffer;
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 );
/* Sections of region.h that are private to VIPS. /* Sections of region.h that are private to VIPS.
*/ */
/* Region types. /* Region types.
*/ */
typedef enum region_type { typedef enum _RegionType {
VIPS_REGION_NONE, VIPS_REGION_NONE,
VIPS_REGION_BUFFER, /* a pixel buffer */ 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 */
VIPS_REGION_WINDOW /* mmap() buffer on fd on another image */ VIPS_REGION_WINDOW /* A VipsWindow on fd */
} RegionType; } RegionType;
/* Private to iofuncs: the size of the `tiles' requested by /* Private to iofuncs: the size of the `tiles' requested by
* vips_image_generate() * vips_image_generate() when acting as a data sink.
* when acting as a data sink.
*/ */
#define VIPS__TILE_WIDTH (512) #define VIPS__TILE_WIDTH (128)
#define VIPS__TILE_HEIGHT (512) #define VIPS__TILE_HEIGHT (128)
/* The height of the strips for the other two request styles. /* The height of the strips for the other two request styles.
*/ */
#define VIPS__THINSTRIP_HEIGHT (1) #define VIPS__THINSTRIP_HEIGHT (1)
#define VIPS__FATSTRIP_HEIGHT (16) #define VIPS__FATSTRIP_HEIGHT (16)
/* Functions on regions. /* Functions on regions.
*/ */
struct _VipsRegion; struct _VipsRegion;
void vips__region_take_ownership( struct _VipsRegion *reg ); void vips__region_take_ownership( struct _VipsRegion *reg );
void vips__region_check_ownership( struct _VipsRegion *reg ); void vips__region_check_ownership( struct _VipsRegion *reg );
void vips__region_no_ownership( struct _VipsRegion *reg ); void vips__region_no_ownership( struct _VipsRegion *reg );
int vips__region_start( struct _VipsRegion *reg ); int vips__region_start( struct _VipsRegion *reg );
void vips__region_stop( struct _VipsRegion *reg ); void vips__region_stop( struct _VipsRegion *reg );
typedef int (*VipsRegionFillFn)( struct _VipsRegion *, void * ); typedef int (*VipsRegionFillFn)( struct _VipsRegion *, void * );
int vips_region_fill( struct _VipsRegion *reg, int vips_region_fill( struct _VipsRegion *reg,
VipsRect *r, VipsRegionFillFn fn, void *a ); VipsRect *r, VipsRegionFillFn fn, void *a );
/* The new name for im_setupout(), still used by some old code. int vips__image_wio_output( struct _VipsImage *image );
*/ int vips__image_pio_output( struct _VipsImage *image );
int vips__image_write_prepare( struct _VipsImage *image );
/* Start up various packages. VipsArgumentInstance *vips__argument_get_instance(
*/ VipsArgumentClass *argument_class,
void vips_arithmetic_operation_init( void ); VipsObject *object);
VipsArgument *vips__argument_table_lookup( VipsArgumentTable *table,
GParamSpec *pspec);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_PRIVATE_H*/ #endif /*VIPS_PRIVATE_H*/
 End of changes. 12 change blocks. 
22 lines changed or deleted 20 lines changed or added


 region.h   region.h 
skipping to change at line 72 skipping to change at line 72
/*< public >*/ /*< public >*/
/* Users may read these two fields. /* Users may read these two fields.
*/ */
VipsImage *im; /* Link back to parent image */ VipsImage *im; /* Link back to parent image */
VipsRect valid; /* Area of parent we can see */ VipsRect valid; /* Area of parent we can see */
/* The rest of VipsRegion is private. /* The rest of VipsRegion is private.
*/ */
/*< private >*/ /*< private >*/
RegionType type; /* What kind of attachment */ RegionType type; /* What kind of attachment */
char *data; /* Off here to get data */ VipsPel *data; /* Off here to get data */
int bpl; /* Bytes-per-line for data */ int bpl; /* Bytes-per-line for data */
void *seq; /* Sequence we are using to fill region */ void *seq; /* Sequence we are using to fill region */
/* The thread that made this region. Used to assert() test that /* The thread that made this region. Used to assert() test that
* regions are not being shared between threads. * regions are not being shared between threads.
*/ */
GThread *thread; GThread *thread;
/* Ref to the window we use for this region, if any. /* Ref to the window we use for this region, if any.
*/ */
skipping to change at line 102 skipping to change at line 102
gboolean invalid; gboolean invalid;
} VipsRegion; } VipsRegion;
typedef struct _VipsRegionClass { typedef struct _VipsRegionClass {
VipsObjectClass parent_class; VipsObjectClass parent_class;
} VipsRegionClass; } VipsRegionClass;
GType vips_region_get_type( void ); GType vips_region_get_type( void );
VipsRegion *vips_region_new( VipsImage *im ); VipsRegion *vips_region_new( VipsImage *image );
int vips_region_buffer( VipsRegion *reg, VipsRect *r ); int vips_region_buffer( VipsRegion *reg, VipsRect *r );
int vips_region_image( VipsRegion *reg, VipsRect *r ); int vips_region_image( VipsRegion *reg, VipsRect *r );
int vips_region_region( VipsRegion *reg, VipsRegion *dest, int vips_region_region( VipsRegion *reg, VipsRegion *dest,
VipsRect *r, int x, int y ); VipsRect *r, int x, int y );
int vips_region_equalsregion( VipsRegion *reg1, VipsRegion *reg2 ); int vips_region_equalsregion( VipsRegion *reg1, VipsRegion *reg2 );
int vips_region_position( VipsRegion *reg, int x, int y ); int vips_region_position( VipsRegion *reg, int x, int y );
void vips_region_paint( VipsRegion *reg, VipsRect *r, int value ); void vips_region_paint( VipsRegion *reg, VipsRect *r, int value );
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 );
/* Macros on VipsRegion. /* Macros on VipsRegion.
skipping to change at line 152 skipping to change at line 153
"VIPS_REGION_ADDR: point out of bounds, " \ "VIPS_REGION_ADDR: point out of bounds, " \
"file \"%s\", line %d\n" \ "file \"%s\", line %d\n" \
"(point x=%d, y=%d\n" \ "(point x=%d, y=%d\n" \
" should have been within VipsRect left=%d, top=%d, " \ " should have been within VipsRect left=%d, top=%d, " \
"width=%d, height=%d)\n", \ "width=%d, height=%d)\n", \
__FILE__, __LINE__, \ __FILE__, __LINE__, \
(X), (Y), \ (X), (Y), \
(R)->valid.left, \ (R)->valid.left, \
(R)->valid.top, \ (R)->valid.top, \
(R)->valid.width, \ (R)->valid.width, \
(R)->valid.height ), abort(), (char *) NULL) \ (R)->valid.height ), abort(), (VipsPel *) NULL) \
) )
#else /*DEBUG*/ #else /*DEBUG*/
#define VIPS_REGION_ADDR( R, X, Y ) \ #define VIPS_REGION_ADDR( R, X, Y ) \
((R)->data + \ ((R)->data + \
((Y)-(R)->valid.top) * VIPS_REGION_LSKIP( R ) + \ ((Y)-(R)->valid.top) * VIPS_REGION_LSKIP( R ) + \
((X)-(R)->valid.left) * VIPS_IMAGE_SIZEOF_PEL( (R)->im )) ((X)-(R)->valid.left) * VIPS_IMAGE_SIZEOF_PEL( (R)->im ))
#endif /*DEBUG*/ #endif /*DEBUG*/
#define VIPS_REGION_ADDR_TOPLEFT( R ) ((R)->data) #define VIPS_REGION_ADDR_TOPLEFT( R ) ((R)->data)
 End of changes. 4 change blocks. 
3 lines changed or deleted 4 lines changed or added


 relational.h   relational.h 
skipping to change at line 40 skipping to change at line 40
*/ */
#ifndef IM_RELATIONAL_H #ifndef IM_RELATIONAL_H
#define IM_RELATIONAL_H #define IM_RELATIONAL_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
int im_equal( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_notequal( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_less( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_lesseq( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_more( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_moreeq( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_equal_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_notequal_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_less_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_lesseq_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_more_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_moreeq_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_equalconst( VipsImage *in, VipsImage *out, double c );
int im_notequalconst( VipsImage *in, VipsImage *out, double c );
int im_lessconst( VipsImage *in, VipsImage *out, double c );
int im_lesseqconst( VipsImage *in, VipsImage *out, double c );
int im_moreconst( VipsImage *in, VipsImage *out, double c );
int im_moreeqconst( VipsImage *in, VipsImage *out, double c );
int im_ifthenelse( VipsImage *c, VipsImage *a, VipsImage *b, VipsImage *out
);
int im_blend( VipsImage *c, VipsImage *a, VipsImage *b, VipsImage *out );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*IM_RELATIONAL_H*/ #endif /*IM_RELATIONAL_H*/
 End of changes. 1 change blocks. 
23 lines changed or deleted 0 lines changed or added


 semaphore.h   semaphore.h 
skipping to change at line 43 skipping to change at line 43
*/ */
#ifndef VIPS_SEMAPHORE_H #ifndef VIPS_SEMAPHORE_H
#define VIPS_SEMAPHORE_H #define VIPS_SEMAPHORE_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#include <vips/vips.h>
#include <vips/thread.h>
/* Implement our own semaphores. /* Implement our own semaphores.
*/ */
typedef struct { typedef struct {
char *name; char *name;
int v; int v;
GMutex *mutex; GMutex *mutex;
GCond *cond; GCond *cond;
} VipsSemaphore; } VipsSemaphore;
 End of changes. 1 change blocks. 
0 lines changed or deleted 3 lines changed or added


 threadpool.h   threadpool.h 
skipping to change at line 82 skipping to change at line 82
/* This region is created and destroyed by the threadpool for the /* This region is created and destroyed by the threadpool for the
* use of the worker. * use of the worker.
*/ */
VipsRegion *reg; VipsRegion *reg;
/* Neither used nor set, do what you like with them. /* Neither used nor set, do what you like with them.
*/ */
VipsRect pos; VipsRect pos;
int x, y; int x, y;
/* Set in work to get the allocate to signal stop.
*/
gboolean stop;
/* The client data passed to the enclosing vips_threadpool_run(). /* The client data passed to the enclosing vips_threadpool_run().
*/ */
void *a; void *a;
} VipsThreadState; } VipsThreadState;
typedef struct _VipsThreadStateClass { typedef struct _VipsThreadStateClass {
VipsObjectClass parent_class; VipsObjectClass parent_class;
/*< public >*/ /*< public >*/
} VipsThreadStateClass; } VipsThreadStateClass;
void *vips_thread_state_set( VipsObject *object, void *a, void *b ); void *vips_thread_state_set( VipsObject *object, void *a, void *b );
GType vips_thread_state_get_type( void ); GType vips_thread_state_get_type( void );
VipsThreadState *vips_thread_state_new( VipsImage *im, void *a ); VipsThreadState *vips_thread_state_new( VipsImage *im, void *a );
/* Constructor for per-thread state. /* Constructor for per-thread state.
*/ */
typedef VipsThreadState *(*VipsThreadStart)( VipsImage *im, void *a ); typedef VipsThreadState *(*VipsThreadStartFn)( VipsImage *im, void *a );
/* A work allocate function. This is run single-threaded by a worker to /* A work allocate function. This is run single-threaded by a worker to
* set up a new work unit. * set up a new work unit.
* Return non-zero for errors. Set *stop for "no more work to do" * Return non-zero for errors. Set *stop for "no more work to do"
*/ */
typedef int (*VipsThreadpoolAllocate)( VipsThreadState *state, typedef int (*VipsThreadpoolAllocateFn)( VipsThreadState *state,
void *a, gboolean *stop ); void *a, gboolean *stop );
/* A work function. This does a unit of work (eg. processing a tile or /* A work function. This does a unit of work (eg. processing a tile or
* whatever). Return non-zero for errors. * whatever). Return non-zero for errors.
*/ */
typedef int (*VipsThreadpoolWork)( VipsThreadState *state, void *a ); typedef int (*VipsThreadpoolWorkFn)( VipsThreadState *state, void *a );
/* A progress function. This is run by the main thread once for every /* A progress function. This is run by the main thread once for every
* allocation. Return an error to kill computation early. * allocation. Return an error to kill computation early.
*/ */
typedef int (*VipsThreadpoolProgress)( void *a ); typedef int (*VipsThreadpoolProgressFn)( void *a );
int vips_threadpool_run( VipsImage *im, int vips_threadpool_run( VipsImage *im,
VipsThreadStart start, VipsThreadStartFn start,
VipsThreadpoolAllocate allocate, VipsThreadpoolAllocateFn allocate,
VipsThreadpoolWork work, VipsThreadpoolWorkFn work,
VipsThreadpoolProgress 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 *nlines );
typedef int (*VipsRegionWrite)( VipsRegion *region, VipsRect *area, void *a
);
int vips_sink_disc( VipsImage *im, VipsRegionWrite write_fn, void *a );
typedef void *(*VipsStart)( VipsImage *out, void *a, void *b );
typedef int (*VipsGenerate)( VipsRegion *out, void *seq, void *a, void *b )
;
typedef int (*VipsStop)( void *seq, void *a, void *b );
int vips_sink( VipsImage *im,
VipsStart start, VipsGenerate generate, VipsStop stop,
void *a, void *b );
int vips_sink_tile( VipsImage *im,
int tile_width, int tile_height,
VipsStart start, VipsGenerate generate, VipsStop stop,
void *a, void *b );
typedef void (*VipsSinkNotify)( VipsImage *im, VipsRect *rect, void *a );
int vips_sink_screen( VipsImage *in, VipsImage *out, VipsImage *mask,
int tile_width, int tile_height, int max_tiles,
int priority,
VipsSinkNotify notify, void *a );
int vips_image_cache( VipsImage *in, VipsImage *out,
int width, int height, int max );
int vips_sink_memory( VipsImage *im );
void vips__print_renders( void ); void vips__print_renders( void );
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. 7 change blocks. 
34 lines changed or deleted 12 lines changed or added


 util.h   util.h 
skipping to change at line 151 skipping to change at line 151
(V) = SHRT_MIN; \ (V) = SHRT_MIN; \
} \ } \
else if( (V) > SHRT_MAX ) { \ else if( (V) > SHRT_MAX ) { \
(SEQ)->overflow++; \ (SEQ)->overflow++; \
(V) = SHRT_MAX; \ (V) = SHRT_MAX; \
} \ } \
} G_STMT_END } G_STMT_END
#define VIPS_CLIP_NONE( V, SEQ ) {} #define VIPS_CLIP_NONE( V, SEQ ) {}
/* Look up the const char * for an enum value. const char *vips_enum_string( GType enm, int value );
*/ const char *vips_enum_nick( GType enm, int value );
#define VIPS_ENUM_STRING( ENUM, VALUE ) \
(g_enum_get_value( g_type_class_ref( ENUM ), VALUE )->value_name)
#define VIPS_ENUM_NICK( ENUM, VALUE ) \
(g_enum_get_value( g_type_class_ref( ENUM ), VALUE )->value_nick)
/* Like GFunc, but return a value.
*/
typedef void *(*VipsSListMap2Fn)( void *, void *, void * );
typedef void *(*VipsSListMap4Fn)( void *, void *, void *, void *, void * );
typedef void *(*VipsSListFold2Fn)( void *, void *, void *, void * );
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 );
void *vips_map_equal( void *a, void *b ); void *vips_map_equal( void *a, void *b );
void *vips_hash_table_map( GHashTable *hash, VipsSListMap2Fn fn, void *a, v void *vips_hash_table_map( GHashTable *hash,
oid *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 );
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)));
skipping to change at line 251 skipping to change at line 242
VIPS_TOKEN_EQUALS, VIPS_TOKEN_EQUALS,
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 );
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. 3 change blocks. 
14 lines changed or deleted 5 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.26.8" #define VIPS_VERSION "7.28.0"
#define VIPS_VERSION_STRING "7.26.8-Tue Jan 21 00:06:51 MSK 2014" #define VIPS_VERSION_STRING "7.28.0-Tue Jan 21 00:04:52 MSK 2014"
#define VIPS_MAJOR_VERSION (7) #define VIPS_MAJOR_VERSION (7)
#define VIPS_MINOR_VERSION (26) #define VIPS_MINOR_VERSION (28)
#define VIPS_MICRO_VERSION (8) #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 97 skipping to change at line 97
#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*/
#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/pool.h> #include <vips/type.h>
#include <vips/version.h> #include <vips/version.h>
#include <vips/rect.h> #include <vips/rect.h>
#include <vips/private.h> #include <vips/private.h>
#include <vips/mask.h> #include <vips/mask.h>
#include <vips/image.h> #include <vips/image.h>
#include <vips/memory.h> #include <vips/memory.h>
#include <vips/error.h> #include <vips/error.h>
#include <vips/format.h> #include <vips/format.h>
#include <vips/region.h> #include <vips/region.h>
#include <vips/generate.h> #include <vips/generate.h>
#include <vips/interpolate.h> #include <vips/interpolate.h>
#include <vips/semaphore.h> #include <vips/semaphore.h>
#include <vips/threadpool.h> #include <vips/threadpool.h>
#include <vips/header.h> #include <vips/header.h>
#include <vips/operation.h> #include <vips/operation.h>
#include <vips/foreign.h>
#include <vips/enumtypes.h> #include <vips/enumtypes.h>
#include <vips/arithmetic.h> #include <vips/arithmetic.h>
#include <vips/boolean.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/histograms_lut.h> #include <vips/histograms_lut.h>
#include <vips/freq_filt.h> #include <vips/freq_filt.h>
#include <vips/resample.h> #include <vips/resample.h>
#include <vips/colour.h> #include <vips/colour.h>
#include <vips/disp.h> #include <vips/disp.h>
skipping to change at line 153 skipping to change at line 155
#ifdef VIPS_ENABLE_DEPRECATED #ifdef VIPS_ENABLE_DEPRECATED
#include <vips/deprecated.h> #include <vips/deprecated.h>
#endif /*VIPS_ENABLE_DEPRECATED*/ #endif /*VIPS_ENABLE_DEPRECATED*/
#include <vips/almostdeprecated.h> #include <vips/almostdeprecated.h>
#include <vips/dispatch.h> #include <vips/dispatch.h>
const char *vips_get_argv0( void ); const char *vips_get_argv0( void );
int vips_init( const char *argv0 ); int vips_init( const char *argv0 );
void vips_check_init( void ); void vips_check_init( void );
void vips_shutdown( void );
GOptionGroup *vips_get_option_group( void ); GOptionGroup *vips_get_option_group( void );
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
} }
 End of changes. 5 change blocks. 
2 lines changed or deleted 5 lines changed or added


 vips7compat.h   vips7compat.h 
skipping to change at line 43 skipping to change at line 43
#ifndef VIPS_VIPS7COMPAT_H #ifndef VIPS_VIPS7COMPAT_H
#define VIPS_VIP7COMPATS_H #define VIPS_VIP7COMPATS_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
/* Renamed types. /* Renamed types.
*/ */
#define PEL VipsPel
#define IM_BANDFMT_NOTSET VIPS_FORMAT_NOTSET #define IM_BANDFMT_NOTSET VIPS_FORMAT_NOTSET
#define IM_BANDFMT_UCHAR VIPS_FORMAT_UCHAR #define IM_BANDFMT_UCHAR VIPS_FORMAT_UCHAR
#define IM_BANDFMT_CHAR VIPS_FORMAT_CHAR #define IM_BANDFMT_CHAR VIPS_FORMAT_CHAR
#define IM_BANDFMT_USHORT VIPS_FORMAT_USHORT #define IM_BANDFMT_USHORT VIPS_FORMAT_USHORT
#define IM_BANDFMT_SHORT VIPS_FORMAT_SHORT #define IM_BANDFMT_SHORT VIPS_FORMAT_SHORT
#define IM_BANDFMT_UINT VIPS_FORMAT_UINT #define IM_BANDFMT_UINT VIPS_FORMAT_UINT
#define IM_BANDFMT_INT VIPS_FORMAT_INT #define IM_BANDFMT_INT VIPS_FORMAT_INT
#define IM_BANDFMT_FLOAT VIPS_FORMAT_FLOAT #define IM_BANDFMT_FLOAT VIPS_FORMAT_FLOAT
#define IM_BANDFMT_COMPLEX VIPS_FORMAT_COMPLEX #define IM_BANDFMT_COMPLEX VIPS_FORMAT_COMPLEX
#define IM_BANDFMT_DOUBLE VIPS_FORMAT_DOUBLE #define IM_BANDFMT_DOUBLE VIPS_FORMAT_DOUBLE
skipping to change at line 96 skipping to change at line 98
/* Renamed macros. /* Renamed macros.
*/ */
#define IM_MAX VIPS_MAX #define IM_MAX VIPS_MAX
#define IM_MIN VIPS_MIN #define IM_MIN VIPS_MIN
#define IM_RAD VIPS_RAD #define IM_RAD VIPS_RAD
#define IM_DEG VIPS_DEG #define IM_DEG VIPS_DEG
#define IM_PI VIPS_PI #define IM_PI VIPS_PI
#define IM_RINT VIPS_RINT #define IM_RINT VIPS_RINT
#define IM_NEW VIPS_NEW
#define IM_ARRAY VIPS_ARRAY
#define IM_SETSTR VIPS_SETSTR
#define IM_ABS VIPS_ABS #define IM_ABS VIPS_ABS
#define IM_FREE VIPS_FREE
#define IM_FREEF VIPS_FREEF
#define IM_NUMBER VIPS_NUMBER #define IM_NUMBER VIPS_NUMBER
#define IM_CLIP VIPS_CLIP #define IM_CLIP VIPS_CLIP
#define IM_CLIP_UCHAR VIPS_CLIP_UCHAR #define IM_CLIP_UCHAR VIPS_CLIP_UCHAR
#define IM_CLIP_CHAR VIPS_CLIP_CHAR #define IM_CLIP_CHAR VIPS_CLIP_CHAR
#define IM_CLIP_USHORT VIPS_CLIP_USHORT #define IM_CLIP_USHORT VIPS_CLIP_USHORT
#define IM_CLIP_SHORT VIPS_CLIP_SHORT #define IM_CLIP_SHORT VIPS_CLIP_SHORT
#define IM_CLIP_NONE VIPS_CLIP_NONE #define IM_CLIP_NONE VIPS_CLIP_NONE
#define IM_UNROLL VIPS_UNROLL #define IM_UNROLL VIPS_UNROLL
#define IM_SWAP VIPS_SWAP #define IM_SWAP VIPS_SWAP
skipping to change at line 166 skipping to change at line 163
#define im_image vips_image_new_from_memory #define im_image vips_image_new_from_memory
#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_disc_temp #define im__open_temp vips_image_new_disc_temp
#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( VIPS_OBJECT( I ) ) #define im_printdesc( I ) vips_object_print_dump( VIPS_OBJECT( I ) )
#define im_openout( F ) vips_image_new_mode( F, "w" ) #define im_openout( F ) vips_image_new_mode( F, "w" )
#define im_setbuf( F ) vips_image_new( "t" ) #define im_setbuf( F ) vips_image_new( "t" )
#define im_initdesc( image, \ #define im_initdesc( image, \
xsize, ysize, bands, bandbits, bandfmt, coding, \ xsize, ysize, bands, bandbits, bandfmt, coding, \
type, xres, yres, xo, yo ) \ type, xres, yres, xo, yo ) \
vips_image_init_fields( image, \ vips_image_init_fields( image, \
xsize, ysize, bands, bandfmt, coding, \ xsize, ysize, bands, bandfmt, coding, \
type, xres, yres ) type, xres, yres )
#define im__open_image_file vips__open_image_read #define im__open_image_file vips__open_image_read
#define im_setupout( I ) vips__image_write_prepare( I ) #define im_setupout vips_image_write_prepare
#define im_writeline( Y, IM, P ) vips_image_write_line( IM, Y, P ) #define im_writeline( Y, IM, P ) vips_image_write_line( IM, Y, P )
#define im_prepare vips_region_prepare #define im_prepare vips_region_prepare
#define im_prepare_to vips_region_prepare_to #define im_prepare_to vips_region_prepare_to
#define im_region_create vips_region_new #define im_region_create vips_region_new
#define im_region_free g_object_unref #define im_region_free g_object_unref
#define im_region_region vips_region_region #define im_region_region vips_region_region
#define im_region_buffer vips_region_buffer #define im_region_buffer vips_region_buffer
#define im_region_black vips_region_black #define im_region_black vips_region_black
#define im_region_paint vips_region_paint #define im_region_paint vips_region_paint
skipping to change at line 269 skipping to change at line 266
#define im_rect_marginadjust vips_rect_marginadjust #define im_rect_marginadjust vips_rect_marginadjust
#define im_rect_includespoint vips_rect_includespoint #define im_rect_includespoint vips_rect_includespoint
#define im_rect_includesrect vips_rect_includesrect #define im_rect_includesrect vips_rect_includesrect
#define im_rect_intersectrect vips_rect_intersectrect #define im_rect_intersectrect vips_rect_intersectrect
#define im_rect_isempty vips_rect_isempty #define im_rect_isempty vips_rect_isempty
#define im_rect_unionrect vips_rect_unionrect #define im_rect_unionrect vips_rect_unionrect
#define im_rect_equalsrect vips_rect_equalsrect #define im_rect_equalsrect vips_rect_equalsrect
#define im_rect_dup vips_rect_dup #define im_rect_dup vips_rect_dup
#define im_rect_normalise vips_rect_normalise #define im_rect_normalise vips_rect_normalise
#define im_demand_hint vips_demand_hint int im_demand_hint (IMAGE * im, VipsDemandStyle hint, ...);
#define im_demand_hint_array vips_demand_hint_array #define im_demand_hint_array( A, B, C ) (vips_demand_hint_array( A, B, C ),
0)
#define im_start_one vips_start_one #define im_start_one vips_start_one
#define im_stop_one vips_stop_one #define im_stop_one vips_stop_one
#define im_start_many vips_start_many #define im_start_many vips_start_many
#define im_stop_many vips_stop_many #define im_stop_many vips_stop_many
#define im_allocate_input_array vips_allocate_input_array #define im_allocate_input_array vips_allocate_input_array
#define im_start_fn VipsStartFn #define im_start_fn VipsStartFn
#define im_generate_fn VipsGenerateFn typedef int (*im_generate_fn)( VipsRegion *out, void *seq, void *a, void *b );
#define im_stop_fn VipsStopFn #define im_stop_fn VipsStopFn
#define im_generate vips_image_generate int im_generate( VipsImage *im,
im_start_fn start, im_generate_fn generate, im_stop_fn stop,
void *a, void *b );
#define im__mmap vips__mmap #define im__mmap vips__mmap
#define im__munmap vips__munmap #define im__munmap vips__munmap
#define im_mapfile vips_mapfile #define im_mapfile vips_mapfile
#define im_mapfilerw vips_mapfilerw #define im_mapfilerw vips_mapfilerw
#define im_remapfilerw vips_remapfilerw #define im_remapfilerw vips_remapfilerw
#define im__print_renders vips__print_renders #define im__print_renders vips__print_renders
#define im_cache vips_image_cache
#define im_malloc vips_malloc int im_cache( IMAGE *in, IMAGE *out, int width, int height, int max );
#define IM_FREEF( F, S ) \
G_STMT_START { \
if( S ) { \
(void) F( (S) ); \
(S) = 0; \
} \
} G_STMT_END
/* Can't just use VIPS_FREEF(), we want the extra cast to void on the argum
ent
* to vips_free() to make sure we can work for "const char *" variables.
*/
#define IM_FREE( S ) \
G_STMT_START { \
if( S ) { \
(void) im_free( (void *) (S) ); \
(S) = 0; \
} \
} G_STMT_END
#define IM_SETSTR( S, V ) \
G_STMT_START { \
const char *sst = (V); \
\
if( (S) != sst ) { \
if( !(S) || !sst || strcmp( (S), sst ) != 0 ) { \
IM_FREE( S ); \
if( sst ) \
(S) = im_strdup( NULL, sst ); \
} \
} \
} G_STMT_END
#define im_malloc( IM, SZ ) \
(vips_malloc( VIPS_OBJECT( IM ), (SZ) ))
#define im_free vips_free #define im_free vips_free
#define im_strdup vips_strdup #define im_strdup( IM, STR ) \
(vips_strdup( VIPS_OBJECT( IM ), (STR) ))
#define IM_NEW( IM, T ) ((T *) im_malloc( (IM), sizeof( T )))
#define IM_ARRAY( IM, N, T ) ((T *) im_malloc( (IM), (N) * sizeof( T )))
#define im_incheck vips_image_wio_input #define im_incheck vips_image_wio_input
#define im_outcheck vips_image_wio_output #define im_outcheck( I ) (0)
#define im_rwcheck vips_image_inplace #define im_rwcheck vips_image_inplace
#define im_pincheck vips_image_pio_input #define im_pincheck vips_image_pio_input
#define im_poutcheck vips_image_pio_output #define im_poutcheck( I ) (0)
#define im_iocheck( I, O ) (im_incheck( I ) || im_outcheck( O )) #define im_iocheck( I, O ) im_incheck( I )
#define im_piocheck( I, O ) (im_pincheck( I ) || im_poutcheck( O )) #define im_piocheck( I, O ) im_pincheck( I )
#define im_check_uncoded vips_check_uncoded #define im_check_uncoded vips_check_uncoded
#define im_check_coding_known vips_check_coding_known #define im_check_coding_known vips_check_coding_known
#define im_check_coding_labq vips_check_coding_labq #define im_check_coding_labq vips_check_coding_labq
#define im_check_coding_rad vips_check_coding_rad #define im_check_coding_rad vips_check_coding_rad
#define im_check_coding_noneorlabq vips_check_coding_noneorlabq #define im_check_coding_noneorlabq vips_check_coding_noneorlabq
#define im_check_coding_same vips_check_coding_same #define im_check_coding_same vips_check_coding_same
#define im_check_mono vips_check_mono #define im_check_mono vips_check_mono
#define im_check_bands_1or3 vips_check_bands_1or3 #define im_check_bands_1or3 vips_check_bands_1or3
#define im_check_bands vips_check_bands #define im_check_bands vips_check_bands
skipping to change at line 380 skipping to change at line 416
#define im_header_double vips_image_get_double #define im_header_double vips_image_get_double
#define im_header_string vips_image_get_string #define im_header_string vips_image_get_string
#define im_header_as_string vips_image_get_as_string #define im_header_as_string vips_image_get_as_string
#define im_header_get_typeof vips_image_get_typeof #define im_header_get_typeof vips_image_get_typeof
#define im_header_get vips_image_get #define im_header_get vips_image_get
#define im_histlin vips_image_history_printf #define im_histlin vips_image_history_printf
#define im_updatehist vips_image_history_args #define im_updatehist vips_image_history_args
#define im_history_get vips_image_get_history #define im_history_get vips_image_get_history
#define im_save_string_get vips_save_string_get #define im_save_string_get vips_value_get_save_string
#define im_save_string_set vips_save_string_set #define im_save_string_set vips_value_set_save_string
#define im_save_string_setf vips_save_string_setf #define im_save_string_setf vips_value_set_save_stringf
#define im_ref_string_set vips_ref_string_set #define im_ref_string_set vips_value_set_ref_string
#define im_ref_string_get vips_ref_string_get #define im_ref_string_get( V ) vips_value_get_ref_string( V, NULL )
#define im_ref_string_get_length vips_ref_string_get_length size_t im_ref_string_get_length( const GValue *value );
#define im_blob_get vips_blob_get #define im_blob_get vips_value_get_blob
#define im_blob_set vips_blob_set #define im_blob_set vips_value_set_blob
#define im_meta_set vips_image_set #define im_meta_set( A, B, C ) (vips_image_set( A, B, C ), 0)
#define im_meta_remove vips_image_remove #define im_meta_remove vips_image_remove
#define im_meta_get vips_image_get #define im_meta_get vips_image_get
#define im_meta_get_typeof vips_image_get_typeof #define im_meta_get_typeof vips_image_get_typeof
#define im_meta_set_int vips_image_set_int #define im_meta_set_int( A, B, C ) (vips_image_set_int( A, B, C ), 0)
#define im_meta_get_int vips_image_get_int #define im_meta_get_int vips_image_get_int
#define im_meta_set_double vips_image_set_double #define im_meta_set_double( A, B, C ) (vips_image_set_double( A, B, C ), 0)
#define im_meta_get_double vips_image_get_double #define im_meta_get_double vips_image_get_double
#define im_meta_set_area vips_image_set_area #define im_meta_set_area( A, B, C, D ) (vips_image_set_area( A, B, C, D ), 0)
#define im_meta_get_area vips_image_get_area #define im_meta_get_area vips_image_get_area
#define im_meta_set_string vips_image_set_string #define im_meta_set_string( A, B, C ) (vips_image_set_string( A, B, C ), 0)
#define im_meta_get_string vips_image_get_string #define im_meta_get_string vips_image_get_string
#define im_meta_set_blob vips_image_set_blob #define im_meta_set_blob( A, B, C, D, E ) \
(vips_image_set_blob( A, B, C, D, E ), 0)
#define im_meta_get_blob vips_image_get_blob #define im_meta_get_blob vips_image_get_blob
#define im_semaphore_t VipsSemaphore #define im_semaphore_t VipsSemaphore
#define im_semaphore_up vips_semaphore_up #define im_semaphore_up vips_semaphore_up
#define im_semaphore_down vips_semaphore_down #define im_semaphore_down vips_semaphore_down
#define im_semaphore_upn vips_semaphore_upn #define im_semaphore_upn vips_semaphore_upn
#define im_semaphore_downn vips_semaphore_downn #define im_semaphore_downn vips_semaphore_downn
#define im_semaphore_destroy vips_semaphore_destroy #define im_semaphore_destroy vips_semaphore_destroy
#define im_semaphore_init vips_semaphore_init #define im_semaphore_init vips_semaphore_init
#define im__open_image_read vips__open_image_read #define im__open_image_read vips__open_image_read
#define im_image_open_input vips_image_open_input #define im_image_open_input vips_image_open_input
#define im_image_open_output vips_image_open_output #define im_image_open_output vips_image_open_output
#define im__read_4byte vips__read_4byte
#define im__read_2byte vips__read_2byte
#define im__write_4byte vips__write_4byte
#define im__write_2byte vips__write_2byte
#define im__has_extension_block vips__has_extension_block #define im__has_extension_block vips__has_extension_block
#define im__read_extension_block vips__read_extension_block #define im__read_extension_block vips__read_extension_block
#define im__write_extension_block vips__write_extension_block #define im__write_extension_block vips__write_extension_block
#define im__writehist vips__writehist #define im__writehist vips__writehist
#define im__read_header_bytes vips__read_header_bytes #define im__read_header_bytes vips__read_header_bytes
#define im__write_header_bytes vips__write_header_bytes #define im__write_header_bytes vips__write_header_bytes
#define VSListMap2Fn VipsSListMap2Fn #define VSListMap2Fn VipsSListMap2Fn
#define VSListMap4Fn VipsSListMap4Fn #define VSListMap4Fn VipsSListMap4Fn
#define VSListFold2Fn VipsSListFold2Fn #define VSListFold2Fn VipsSListFold2Fn
skipping to change at line 489 skipping to change at line 522
#define IM_MINOR_VERSION VIPS_MINOR_VERSION #define IM_MINOR_VERSION VIPS_MINOR_VERSION
#define IM_MICRO_VERSION VIPS_MICRO_VERSION #define IM_MICRO_VERSION VIPS_MICRO_VERSION
#define IM_EXEEXT VIPS_EXEEXT #define IM_EXEEXT VIPS_EXEEXT
#define IM_SIZEOF_HEADER VIPS_SIZEOF_HEADER #define IM_SIZEOF_HEADER VIPS_SIZEOF_HEADER
#define im_concurrency_set vips_concurrency_set #define im_concurrency_set vips_concurrency_set
#define im_concurrency_get vips_concurrency_get #define im_concurrency_get vips_concurrency_get
int im_add( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_subtract( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_multiply( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_divide( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_min( VipsImage *in, double *out );
int im_minpos( VipsImage *in, int *xpos, int *ypos, double *out );
int im_max( VipsImage *in, double *out );
int im_maxpos( VipsImage *in, int *xpos, int *ypos, double *out );
int im_avg( VipsImage *in, double *out );
int im_deviate( VipsImage *in, double *out );
int im_invert( VipsImage *in, VipsImage *out );
int im_lintra( double a, VipsImage *in, double b, VipsImage *out );
int im_lintra_vec( int n, double *a, VipsImage *in, double *b, VipsImage *o
ut );
int im_abs( VipsImage *in, VipsImage *out );
int im_sign( VipsImage *in, VipsImage *out );
DOUBLEMASK *im_stats( VipsImage *in );
DOUBLEMASK *im_measure_area( VipsImage *im,
int left, int top, int width, int height,
int h, int v,
int *sel, int nsel, const char *name );
int im_sintra( VipsImage *in, VipsImage *out );
int im_costra( VipsImage *in, VipsImage *out );
int im_tantra( VipsImage *in, VipsImage *out );
int im_asintra( VipsImage *in, VipsImage *out );
int im_acostra( VipsImage *in, VipsImage *out );
int im_atantra( VipsImage *in, VipsImage *out );
int im_logtra( VipsImage *in, VipsImage *out );
int im_log10tra( VipsImage *in, VipsImage *out );
int im_exptra( VipsImage *in, VipsImage *out );
int im_exp10tra( VipsImage *in, VipsImage *out );
int im_floor( VipsImage *in, VipsImage *out );
int im_rint( VipsImage *in, VipsImage *out );
int im_ceil( VipsImage *in, VipsImage *out );
int im_equal( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_notequal( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_less( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_lesseq( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_more( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_moreeq( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_andimage( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_orimage( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_eorimage( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_andimage_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_orimage_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_eorimage_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_andimageconst( VipsImage *in, VipsImage *out, double c );
int im_orimageconst( VipsImage *in, VipsImage *out, double c );
int im_eorimageconst( VipsImage *in, VipsImage *out, double c );
int im_shiftleft_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_shiftleft( VipsImage *in, VipsImage *out, int n );
int im_shiftright_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_shiftright( VipsImage *in, VipsImage *out, int n );
int im_remainder( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_remainder_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_remainderconst( VipsImage *in, VipsImage *out, double c );
int im_powtra( VipsImage *in, VipsImage *out, double e );
int im_powtra_vec( VipsImage *in, VipsImage *out, int n, double *e );
int im_expntra( VipsImage *in, VipsImage *out, double e );
int im_expntra_vec( VipsImage *in, VipsImage *out, int n, double *e );
int im_equal_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_notequal_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_less_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_lesseq_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_more_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_moreeq_vec( VipsImage *in, VipsImage *out, int n, double *c );
int im_equalconst( VipsImage *in, VipsImage *out, double c );
int im_notequalconst( VipsImage *in, VipsImage *out, double c );
int im_lessconst( VipsImage *in, VipsImage *out, double c );
int im_lesseqconst( VipsImage *in, VipsImage *out, double c );
int im_moreconst( VipsImage *in, VipsImage *out, double c );
int im_moreeqconst( VipsImage *in, VipsImage *out, double c );
int im_copy( VipsImage *in, VipsImage *out );
int im_copy_set( VipsImage *in, VipsImage *out,
VipsInterpretation interpretation,
float xres, float yres, int xoffset, int yoffset );
int im_copy_set_meta( VipsImage *in, VipsImage *out,
const char *field, GValue *value );
int im_copy_morph( VipsImage *in, VipsImage *out,
int bands, VipsBandFormat format, VipsCoding coding );
int im_copy_swap( VipsImage *in, VipsImage *out );
int im_copy_native( VipsImage *in, VipsImage *out, gboolean is_msb_first );
int im_embed( VipsImage *in, VipsImage *out,
int type, int x, int y, int width, int height );
int im_fliphor( VipsImage *in, VipsImage *out );
int im_flipver( VipsImage *in, VipsImage *out );
int im_insert( VipsImage *main, VipsImage *sub, VipsImage *out, int x, int
y );
int im_insert_noexpand( VipsImage *main, VipsImage *sub, VipsImage *out, in
t x, int y );
int im_lrjoin( VipsImage *left, VipsImage *right, VipsImage *out );
int im_tbjoin( VipsImage *top, VipsImage *bottom, VipsImage *out );
int im_extract_area( VipsImage *in, VipsImage *out,
int left, int top, int width, int height );
int im_extract_band( VipsImage *in, VipsImage *out, int band );
int im_extract_bands( VipsImage *in, VipsImage *out, int band, int nbands )
;
int im_extract_areabands( VipsImage *in, VipsImage *out,
int left, int top, int width, int height, int band, int nbands );
int im_replicate( VipsImage *in, VipsImage *out, int across, int down );
int im_clip2fmt( VipsImage *in, VipsImage *out, VipsBandFormat fmt );
int im_bandjoin( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_gbandjoin( VipsImage **in, VipsImage *out, int n );
int im_black( VipsImage *out, int x, int y, int bands );
int im_c2amph( VipsImage *in, VipsImage *out );
int im_c2rect( VipsImage *in, VipsImage *out );
int im_c2imag( VipsImage *in, VipsImage *out );
int im_c2real( VipsImage *in, VipsImage *out );
int im_ri2c( VipsImage *in1, VipsImage *in2, VipsImage *out );
int im_rot90( VipsImage *in, VipsImage *out );
int im_rot180( VipsImage *in, VipsImage *out );
int im_rot270( VipsImage *in, VipsImage *out );
int im_ifthenelse( VipsImage *c, VipsImage *a, VipsImage *b, VipsImage *out
);
int im_blend( VipsImage *c, VipsImage *a, VipsImage *b, VipsImage *out );
DOUBLEMASK *im_vips2mask( VipsImage *in, const char *filename );
int im_mask2vips( DOUBLEMASK *in, VipsImage *out );
int im_bandmean( VipsImage *in, VipsImage *out );
int im_recomb( VipsImage *in, VipsImage *out, DOUBLEMASK *recomb );
/* ruby-vips uses this /* ruby-vips uses this
*/ */
#define vips_class_map_concrete_all vips_class_map_all #define vips_class_map_concrete_all vips_class_map_all
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/
#endif /*VIPS_VIPS7COMPAT_H*/ #endif /*VIPS_VIPS7COMPAT_H*/
 End of changes. 24 change blocks. 
37 lines changed or deleted 206 lines changed or added


 vipsc++.h   vipsc++.h 
// headers for package arithmetic // headers for package arithmetic
// this file automatically generated from // this file automatically generated from
// VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010 // VIPS library 7.28.0-Tue Jan 31 10:51:45 GMT 2012
VImage abs() throw( VError ); VImage abs() throw( VError );
VImage acos() throw( VError ); VImage acos() throw( VError );
VImage add( VImage ) throw( VError ); VImage add( VImage add_in2 ) throw( VError );
VImage asin() throw( VError ); VImage asin() throw( VError );
VImage atan() throw( VError ); VImage atan() throw( VError );
double avg() throw( VError ); double avg() throw( VError );
double point_bilinear( double, double, int ) throw( VError ); double point_bilinear( double point_bilinear_x, double point_bilinear_y, in t point_bilinear_band ) throw( VError );
VImage bandmean() throw( VError ); VImage bandmean() throw( VError );
VImage ceil() throw( VError ); VImage ceil() throw( VError );
VImage cos() throw( VError ); VImage cos() throw( VError );
VImage cross_phase( VImage ) throw( VError ); VImage cross_phase( VImage cross_phase_in2 ) throw( VError );
double deviate() throw( VError ); double deviate() throw( VError );
VImage divide( VImage ) throw( VError ); VImage divide( VImage divide_in2 ) throw( VError );
VImage exp10() throw( VError ); VImage exp10() throw( VError );
VImage expn( double ) throw( VError ); VImage expn( double expn_x ) throw( VError );
VImage expn( std::vector<double> ) throw( VError ); VImage expn( std::vector<double> expn_v ) throw( VError );
VImage exp() throw( VError ); VImage exp() throw( VError );
VImage floor() throw( VError ); VImage floor() throw( VError );
VImage invert() throw( VError ); VImage invert() throw( VError );
VImage lin( double, double ) throw( VError ); VImage lin( double lin_a, double lin_b ) throw( VError );
static VImage linreg( std::vector<VImage>, std::vector<double> ) throw( VEr static VImage linreg( std::vector<VImage> linreg_ins, std::vector<double> l
ror ); inreg_xs ) throw( VError );
VImage lin( std::vector<double>, std::vector<double> ) throw( VError ); VImage lin( std::vector<double> lin_a, std::vector<double> lin_b ) throw( V
Error );
VImage log10() throw( VError ); VImage log10() throw( VError );
VImage log() throw( VError ); VImage log() throw( VError );
double max() throw( VError ); double max() throw( VError );
std::complex<double> maxpos() throw( VError ); std::complex<double> maxpos() throw( VError );
double maxpos_avg( double&, double& ) throw( VError ); double maxpos_avg( double& maxpos_avg_y, double& maxpos_avg_out ) throw( VE
VDMask measure( int, int, int, int, int, int ) throw( VError ); rror );
VDMask measure( int measure_x, int measure_y, int measure_w, int measure_h,
int measure_h_patches, int measure_v_patches ) throw( VError );
double min() throw( VError ); double min() throw( VError );
std::complex<double> minpos() throw( VError ); std::complex<double> minpos() throw( VError );
VImage multiply( VImage ) throw( VError ); VImage multiply( VImage multiply_in2 ) throw( VError );
VImage pow( double ) throw( VError ); VImage pow( double pow_x ) throw( VError );
VImage pow( std::vector<double> ) throw( VError ); VImage pow( std::vector<double> pow_v ) throw( VError );
VImage recomb( VDMask ) throw( VError ); VImage recomb( VDMask recomb_matrix ) throw( VError );
VImage remainder( VImage ) throw( VError ); VImage remainder( VImage remainder_in2 ) throw( VError );
VImage remainder( double ) throw( VError ); VImage remainder( double remainder_x ) throw( VError );
VImage remainder( std::vector<double> ) throw( VError ); VImage remainder( std::vector<double> remainder_x ) throw( VError );
VImage rint() throw( VError ); VImage rint() throw( VError );
VImage sign() throw( VError ); VImage sign() throw( VError );
VImage sin() throw( VError ); VImage sin() throw( VError );
VDMask stats() throw( VError ); VDMask stats() throw( VError );
VImage subtract( VImage ) throw( VError ); VImage subtract( VImage subtract_in2 ) throw( VError );
VImage tan() throw( VError ); VImage tan() throw( VError );
// headers for package boolean
// this file automatically generated from
// VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010
VImage andimage( VImage ) throw( VError );
VImage andimage( int ) throw( VError );
VImage andimage( std::vector<double> ) throw( VError );
VImage orimage( VImage ) throw( VError );
VImage orimage( int ) throw( VError );
VImage orimage( std::vector<double> ) throw( VError );
VImage eorimage( VImage ) throw( VError );
VImage eorimage( int ) throw( VError );
VImage eorimage( std::vector<double> ) throw( VError );
VImage shiftleft( std::vector<double> ) throw( VError );
VImage shiftleft( int ) throw( VError );
VImage shiftright( std::vector<double> ) throw( VError );
VImage shiftright( int ) throw( VError );
// headers for package cimg // headers for package cimg
// this file automatically generated from // this file automatically generated from
// VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010 // VIPS library 7.28.0-Tue Jan 31 10:51:45 GMT 2012
VImage greyc( int, double, double, double, double, double, double, double, VImage greyc( int greyc_iterations, double greyc_amplitude, double greyc_sh
double, int, int ) throw( VError ); arpness, double greyc_anisotropy, double greyc_alpha, double greyc_sigma, d
VImage greyc_mask( VImage, int, double, double, double, double, double, dou ouble greyc_dl, double greyc_da, double greyc_gauss_prec, int greyc_interpo
ble, double, double, int, int ) throw( VError ); lation, int greyc_fast_approx ) throw( VError );
VImage greyc_mask( VImage greyc_mask_mask, int greyc_mask_iterations, doubl
e greyc_mask_amplitude, double greyc_mask_sharpness, double greyc_mask_anis
otropy, double greyc_mask_alpha, double greyc_mask_sigma, double greyc_mask
_dl, double greyc_mask_da, double greyc_mask_gauss_prec, int greyc_mask_int
erpolation, int greyc_mask_fast_approx ) throw( VError );
// headers for package colour // headers for package colour
// this file automatically generated from // this file automatically generated from
// VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010 // VIPS library 7.28.0-Tue Jan 31 10:51:45 GMT 2012
VImage LCh2Lab() throw( VError ); VImage LCh2Lab() throw( VError );
VImage LCh2UCS() throw( VError ); VImage LCh2UCS() throw( VError );
VImage Lab2LCh() throw( VError ); VImage Lab2LCh() throw( VError );
VImage Lab2LabQ() throw( VError ); VImage Lab2LabQ() throw( VError );
VImage Lab2LabS() throw( VError ); VImage Lab2LabS() throw( VError );
VImage Lab2UCS() throw( VError ); VImage Lab2UCS() throw( VError );
VImage Lab2XYZ() throw( VError ); VImage Lab2XYZ() throw( VError );
VImage Lab2XYZ_temp( double, double, double ) throw( VError ); VImage Lab2XYZ_temp( double Lab2XYZ_temp_X0, double Lab2XYZ_temp_Y0, double
VImage Lab2disp( VDisplay ) throw( VError ); Lab2XYZ_temp_Z0 ) throw( VError );
VImage Lab2disp( VDisplay Lab2disp_disp ) throw( VError );
VImage LabQ2LabS() throw( VError ); VImage LabQ2LabS() throw( VError );
VImage LabQ2Lab() throw( VError ); VImage LabQ2Lab() throw( VError );
VImage LabQ2XYZ() throw( VError ); VImage LabQ2XYZ() throw( VError );
VImage LabQ2disp( VDisplay ) throw( VError ); VImage LabQ2disp( VDisplay LabQ2disp_disp ) throw( VError );
VImage LabS2LabQ() throw( VError ); VImage LabS2LabQ() throw( VError );
VImage LabS2Lab() throw( VError ); VImage LabS2Lab() throw( VError );
VImage UCS2LCh() throw( VError ); VImage UCS2LCh() throw( VError );
VImage UCS2Lab() throw( VError ); VImage UCS2Lab() throw( VError );
VImage UCS2XYZ() throw( VError ); VImage UCS2XYZ() throw( VError );
VImage XYZ2Lab() throw( VError ); VImage XYZ2Lab() throw( VError );
VImage XYZ2Lab_temp( double, double, double ) throw( VError ); VImage XYZ2Lab_temp( double XYZ2Lab_temp_X0, double XYZ2Lab_temp_Y0, double XYZ2Lab_temp_Z0 ) throw( VError );
VImage XYZ2UCS() throw( VError ); VImage XYZ2UCS() throw( VError );
VImage XYZ2Yxy() throw( VError ); VImage XYZ2Yxy() throw( VError );
VImage XYZ2disp( VDisplay ) throw( VError ); VImage XYZ2disp( VDisplay XYZ2disp_disp ) throw( VError );
VImage XYZ2sRGB() throw( VError ); VImage XYZ2sRGB() throw( VError );
VImage Yxy2XYZ() throw( VError ); VImage Yxy2XYZ() throw( VError );
VImage dE00_fromLab( VImage ) throw( VError ); VImage dE00_fromLab( VImage dE00_fromLab_in2 ) throw( VError );
VImage dECMC_fromLab( VImage ) throw( VError ); VImage dECMC_fromLab( VImage dECMC_fromLab_in2 ) throw( VError );
VImage dECMC_fromdisp( VImage, VDisplay ) throw( VError ); VImage dECMC_fromdisp( VImage dECMC_fromdisp_in2, VDisplay dECMC_fromdisp_d
VImage dE_fromLab( VImage ) throw( VError ); isp ) throw( VError );
VImage dE_fromXYZ( VImage ) throw( VError ); VImage dE_fromLab( VImage dE_fromLab_in2 ) throw( VError );
VImage dE_fromdisp( VImage, VDisplay ) throw( VError ); VImage dE_fromXYZ( VImage dE_fromXYZ_in2 ) throw( VError );
VImage disp2Lab( VDisplay ) throw( VError ); VImage dE_fromdisp( VImage dE_fromdisp_in2, VDisplay dE_fromdisp_disp ) thr
VImage disp2XYZ( VDisplay ) throw( VError ); ow( VError );
VImage disp2Lab( VDisplay disp2Lab_disp ) throw( VError );
VImage disp2XYZ( VDisplay disp2XYZ_disp ) throw( VError );
VImage float2rad() throw( VError ); VImage float2rad() throw( VError );
VImage icc_ac2rc( char* ) throw( VError ); VImage argb2rgba() throw( VError );
VImage icc_export_depth( int, char*, int ) throw( VError ); VImage icc_ac2rc( char* icc_ac2rc_profile ) throw( VError );
VImage icc_import( char*, int ) throw( VError ); VImage icc_export_depth( int icc_export_depth_depth, char* icc_export_depth
VImage icc_import_embedded( int ) throw( VError ); _output_profile, int icc_export_depth_intent ) throw( VError );
VImage icc_transform( char*, char*, int ) throw( VError ); VImage icc_import( char* icc_import_input_profile, int icc_import_intent )
VImage lab_morph( VDMask, double, double, double, double ) throw( VError ); throw( VError );
VImage icc_import_embedded( int icc_import_embedded_intent ) throw( VError
);
VImage icc_transform( char* icc_transform_input_profile, char* icc_transfor
m_output_profile, int icc_transform_intent ) throw( VError );
VImage lab_morph( VDMask lab_morph_greyscale, double lab_morph_L_offset, do
uble lab_morph_L_scale, double lab_morph_a_scale, double lab_morph_b_scale
) throw( VError );
VImage rad2float() throw( VError ); VImage rad2float() throw( VError );
VImage sRGB2XYZ() throw( VError ); VImage sRGB2XYZ() throw( VError );
// headers for package conversion // headers for package conversion
// this file automatically generated from // this file automatically generated from
// VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010 // VIPS library 7.28.0-Tue Jan 31 10:51:45 GMT 2012
static VImage gaussnoise( int, int, double, double ) throw( VError ); static VImage gaussnoise( int gaussnoise_xsize, int gaussnoise_ysize, doubl
VImage bandjoin( VImage ) throw( VError ); e gaussnoise_mean, double gaussnoise_sigma ) throw( VError );
static VImage black( int, int, int ) throw( VError ); VImage bandjoin( VImage bandjoin_in2 ) throw( VError );
static VImage black( int black_x_size, int black_y_size, int black_bands )
throw( VError );
VImage c2amph() throw( VError ); VImage c2amph() throw( VError );
VImage c2imag() throw( VError ); VImage c2imag() throw( VError );
VImage c2real() throw( VError ); VImage c2real() throw( VError );
VImage c2rect() throw( VError ); VImage c2rect() throw( VError );
VImage clip2fmt( int ) throw( VError ); VImage clip2fmt( int clip2fmt_ofmt ) throw( VError );
VImage copy() throw( VError ); VImage copy() throw( VError );
VImage copy_file() throw( VError ); VImage copy_file() throw( VError );
VImage copy_morph( int, int, int ) throw( VError ); VImage copy_morph( int copy_morph_Bands, int copy_morph_BandFmt, int copy_m orph_Coding ) throw( VError );
VImage copy_swap() throw( VError ); VImage copy_swap() throw( VError );
VImage copy_set( int, double, double, int, int ) throw( VError ); VImage copy_set( int copy_set_Type, double copy_set_Xres, double copy_set_Y
VImage extract_area( int, int, int, int ) throw( VError ); res, int copy_set_Xoffset, int copy_set_Yoffset ) throw( VError );
VImage extract_areabands( int, int, int, int, int, int ) throw( VError ); VImage extract_area( int extract_area_left, int extract_area_top, int extra
VImage extract_band( int ) throw( VError ); ct_area_width, int extract_area_height ) throw( VError );
VImage extract_bands( int, int ) throw( VError ); VImage extract_areabands( int extract_areabands_left, int extract_areabands
VImage extract( int, int, int, int, int ) throw( VError ); _top, int extract_areabands_width, int extract_areabands_height, int extrac
t_areabands_band, int extract_areabands_nbands ) throw( VError );
VImage extract_band( int extract_band_band ) throw( VError );
VImage extract_bands( int extract_bands_band, int extract_bands_nbands ) th
row( VError );
VImage extract( int extract_left, int extract_top, int extract_width, int e
xtract_height, int extract_band ) throw( VError );
VImage falsecolour() throw( VError ); VImage falsecolour() throw( VError );
VImage fliphor() throw( VError ); VImage fliphor() throw( VError );
VImage flipver() throw( VError ); VImage flipver() throw( VError );
static VImage gbandjoin( std::vector<VImage> ) throw( VError ); static VImage gbandjoin( std::vector<VImage> gbandjoin_in ) throw( VError )
VImage grid( int, int, int ) throw( VError ); ;
VImage insert( VImage, int, int ) throw( VError ); VImage grid( int grid_tile_height, int grid_across, int grid_down ) throw(
VImage insert( VImage, std::vector<int>, std::vector<int> ) throw( VError ) VError );
; VImage insert( VImage insert_sub, int insert_x, int insert_y ) throw( VErro
VImage insert_noexpand( VImage, int, int ) throw( VError ); r );
VImage embed( int, int, int, int, int ) throw( VError ); VImage insert( VImage insert_sub, std::vector<int> insert_x, std::vector<in
VImage lrjoin( VImage ) throw( VError ); t> insert_y ) throw( VError );
static VImage mask2vips( VDMask ) throw( VError ); VImage insert_noexpand( VImage insert_noexpand_sub, int insert_noexpand_x,
int insert_noexpand_y ) throw( VError );
VImage embed( int embed_type, int embed_x, int embed_y, int embed_width, in
t embed_height ) throw( VError );
VImage lrjoin( VImage lrjoin_in2 ) throw( VError );
VImage msb() throw( VError ); VImage msb() throw( VError );
VImage msb_band( int ) throw( VError ); VImage msb_band( int msb_band_band ) throw( VError );
VImage replicate( int, int ) throw( VError ); VImage replicate( int replicate_across, int replicate_down ) throw( VError
VImage ri2c( VImage ) throw( VError ); );
VImage ri2c( VImage ri2c_in2 ) throw( VError );
VImage rot180() throw( VError ); VImage rot180() throw( VError );
VImage rot270() throw( VError ); VImage rot270() throw( VError );
VImage rot90() throw( VError ); VImage rot90() throw( VError );
VImage scale() throw( VError ); VImage scale() throw( VError );
VImage scaleps() throw( VError ); VImage scaleps() throw( VError );
VImage subsample( int, int ) throw( VError ); VImage subsample( int subsample_xshrink, int subsample_yshrink ) throw( VEr
char* system( char* ) throw( VError ); ror );
VImage system_image( char*, char*, char*, char*& ) throw( VError ); char* system( char* system_command ) throw( VError );
VImage tbjoin( VImage ) throw( VError ); VImage system_image( char* system_image_in_format, char* system_image_out_f
static VImage text( char*, char*, int, int, int ) throw( VError ); ormat, char* system_image_command, char*& system_image_log ) throw( VError
VDMask vips2mask() throw( VError ); );
VImage wrap( int, int ) throw( VError ); VImage tbjoin( VImage tbjoin_in2 ) throw( VError );
VImage zoom( int, int ) throw( VError ); static VImage text( char* text_text, char* text_font, int text_width, int t
ext_alignment, int text_dpi ) throw( VError );
VImage wrap( int wrap_x, int wrap_y ) throw( VError );
VImage zoom( int zoom_xfac, int zoom_yfac ) throw( VError );
// headers for package convolution // headers for package convolution
// this file automatically generated from // this file automatically generated from
// VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010 // VIPS library 7.28.0-Tue Jan 31 10:51:45 GMT 2012
VImage addgnoise( double ) throw( VError ); VImage aconvsep( VDMask aconvsep_matrix, int aconvsep_n_layers ) throw( VEr
VImage compass( VIMask ) throw( VError ); ror );
VImage contrast_surface( int, int ) throw( VError ); VImage aconv( VDMask aconv_matrix, int aconv_n_layers, int aconv_cluster )
VImage conv( VIMask ) throw( VError ); throw( VError );
VImage conv( VDMask ) throw( VError ); VImage addgnoise( double addgnoise_sigma ) throw( VError );
VImage convsep( VIMask ) throw( VError ); VImage compass( VIMask compass_matrix ) throw( VError );
VImage convsep( VDMask ) throw( VError ); VImage contrast_surface( int contrast_surface_half_win_size, int contrast_s
VImage fastcor( VImage ) throw( VError ); urface_spacing ) throw( VError );
VImage gradcor( VImage ) throw( VError ); VImage conv( VIMask conv_matrix ) throw( VError );
VImage gradient( VIMask ) throw( VError ); VImage conv( VDMask conv_matrix ) throw( VError );
VImage convsep( VIMask convsep_matrix ) throw( VError );
VImage convsep( VDMask convsep_matrix ) throw( VError );
VImage fastcor( VImage fastcor_in2 ) throw( VError );
VImage gradcor( VImage gradcor_in2 ) throw( VError );
VImage gradient( VIMask gradient_matrix ) throw( VError );
VImage grad_x() throw( VError ); VImage grad_x() throw( VError );
VImage grad_y() throw( VError ); VImage grad_y() throw( VError );
VImage lindetect( VIMask ) throw( VError ); VImage lindetect( VIMask lindetect_matrix ) throw( VError );
VImage sharpen( int, double, double, double, double, double ) throw( VError VImage sharpen( int sharpen_mask_size, double sharpen_x1, double sharpen_y2
); , double sharpen_y3, double sharpen_m1, double sharpen_m2 ) throw( VError )
VImage spcor( VImage ) throw( VError ); ;
VImage spcor( VImage spcor_in2 ) throw( VError );
// headers for package deprecated // headers for package deprecated
// this file automatically generated from // this file automatically generated from
// VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010 // VIPS library 7.28.0-Tue Jan 31 10:51:45 GMT 2012
VImage flood_copy( int, int, std::vector<double> ) throw( VError ); VImage flood_copy( int flood_copy_start_x, int flood_copy_start_y, std::vec
VImage flood_blob_copy( int, int, std::vector<double> ) throw( VError ); tor<double> flood_copy_ink ) throw( VError );
VImage flood_other_copy( VImage, int, int, int ) throw( VError ); VImage flood_blob_copy( int flood_blob_copy_start_x, int flood_blob_copy_st
art_y, std::vector<double> flood_blob_copy_ink ) throw( VError );
VImage flood_other_copy( VImage flood_other_copy_mark, int flood_other_copy
_start_x, int flood_other_copy_start_y, int flood_other_copy_serial ) throw
( VError );
VImage clip() throw( VError ); VImage clip() throw( VError );
VImage c2ps() throw( VError ); VImage c2ps() throw( VError );
VImage resize_linear( int, int ) throw( VError ); VImage resize_linear( int resize_linear_X, int resize_linear_Y ) throw( VEr
VImage cmulnorm( VImage ) throw( VError ); ror );
VImage fav4( VImage, VImage, VImage ) throw( VError ); VImage cmulnorm( VImage cmulnorm_in2 ) throw( VError );
VImage gadd( double, double, VImage, double ) throw( VError ); VImage fav4( VImage fav4_in2, VImage fav4_in3, VImage fav4_in4 ) throw( VEr
VImage icc_export( char*, int ) throw( VError ); ror );
VImage litecor( VImage, int, double ) throw( VError ); VImage gadd( double gadd_a, double gadd_b, VImage gadd_in2, double gadd_c )
VImage affine( double, double, double, double, double, double, int, int, in throw( VError );
t, int ) throw( VError ); VImage icc_export( char* icc_export_output_profile, int icc_export_intent )
throw( VError );
VImage litecor( VImage litecor_white, int litecor_clip, double litecor_fact
or ) throw( VError );
VImage affine( double affine_a, double affine_b, double affine_c, double af
fine_d, double affine_dx, double affine_dy, int affine_x, int affine_y, int
affine_w, int affine_h ) throw( VError );
VImage clip2c() throw( VError ); VImage clip2c() throw( VError );
VImage clip2cm() throw( VError ); VImage clip2cm() throw( VError );
VImage clip2d() throw( VError ); VImage clip2d() throw( VError );
VImage clip2dcm() throw( VError ); VImage clip2dcm() throw( VError );
VImage clip2f() throw( VError ); VImage clip2f() throw( VError );
VImage clip2i() throw( VError ); VImage clip2i() throw( VError );
VImage convsub( VIMask, int, int ) throw( VError ); VImage convsub( VIMask convsub_matrix, int convsub_xskip, int convsub_yskip
VImage convf( VDMask ) throw( VError ); ) throw( VError );
VImage convsepf( VDMask ) throw( VError ); VImage convf( VDMask convf_matrix ) throw( VError );
VImage convsepf( VDMask convsepf_matrix ) throw( VError );
VImage clip2s() throw( VError ); VImage clip2s() throw( VError );
VImage clip2ui() throw( VError ); VImage clip2ui() throw( VError );
VImage insertplace( VImage, std::vector<int>, std::vector<int> ) throw( VEr ror ); VImage insertplace( VImage insertplace_sub, std::vector<int> insertplace_x, std::vector<int> insertplace_y ) throw( VError );
VImage clip2us() throw( VError ); VImage clip2us() throw( VError );
VImage slice( double, double ) throw( VError ); VImage slice( double slice_thresh1, double slice_thresh2 ) throw( VError );
VImage segment( int& ) throw( VError ); VImage segment( int& segment_segments ) throw( VError );
void line( int, int, int, int, int ) throw( VError ); void line( int line_x1, int line_y1, int line_x2, int line_y2, int line_pel
VImage thresh( double ) throw( VError ); val ) throw( VError );
VImage convf_raw( VDMask ) throw( VError ); VImage thresh( double thresh_threshold ) throw( VError );
VImage conv_raw( VIMask ) throw( VError ); VImage convf_raw( VDMask convf_raw_matrix ) throw( VError );
VImage contrast_surface_raw( int, int ) throw( VError ); VImage conv_raw( VIMask conv_raw_matrix ) throw( VError );
VImage convsepf_raw( VDMask ) throw( VError ); VImage contrast_surface_raw( int contrast_surface_raw_half_win_size, int co
VImage convsep_raw( VIMask ) throw( VError ); ntrast_surface_raw_spacing ) throw( VError );
VImage fastcor_raw( VImage ) throw( VError ); VImage convsepf_raw( VDMask convsepf_raw_matrix ) throw( VError );
VImage gradcor_raw( VImage ) throw( VError ); VImage convsep_raw( VIMask convsep_raw_matrix ) throw( VError );
VImage spcor_raw( VImage ) throw( VError ); VImage fastcor_raw( VImage fastcor_raw_in2 ) throw( VError );
VImage lhisteq_raw( int, int ) throw( VError ); VImage gradcor_raw( VImage gradcor_raw_in2 ) throw( VError );
VImage stdif_raw( double, double, double, double, int, int ) throw( VError VImage spcor_raw( VImage spcor_raw_in2 ) throw( VError );
); VImage lhisteq_raw( int lhisteq_raw_width, int lhisteq_raw_height ) throw(
VImage rank_raw( int, int, int ) throw( VError ); VError );
VImage dilate_raw( VIMask ) throw( VError ); VImage stdif_raw( double stdif_raw_a, double stdif_raw_m0, double stdif_raw
VImage erode_raw( VIMask ) throw( VError ); _b, double stdif_raw_s0, int stdif_raw_xw, int stdif_raw_yw ) throw( VError
VImage similarity_area( double, double, double, double, int, int, int, int );
) throw( VError ); VImage rank_raw( int rank_raw_xsize, int rank_raw_ysize, int rank_raw_n ) t
VImage similarity( double, double, double, double ) throw( VError ); hrow( VError );
void insertplace( VImage, int, int ) throw( VError ); VImage dilate_raw( VIMask dilate_raw_mask ) throw( VError );
void circle( int, int, int, int ) throw( VError ); VImage erode_raw( VIMask erode_raw_mask ) throw( VError );
VImage similarity_area( double similarity_area_a, double similarity_area_b,
double similarity_area_dx, double similarity_area_dy, int similarity_area_
x, int similarity_area_y, int similarity_area_w, int similarity_area_h ) th
row( VError );
VImage similarity( double similarity_a, double similarity_b, double similar
ity_dx, double similarity_dy ) throw( VError );
static VImage mask2vips( VDMask mask2vips_input ) throw( VError );
VDMask vips2mask() throw( VError );
void insertplace( VImage insertplace_sub, int insertplace_x, int insertplac
e_y ) throw( VError );
void circle( int circle_cx, int circle_cy, int circle_radius, int circle_in
tensity ) throw( VError );
VImage andimage( VImage andimage_in2 ) throw( VError );
VImage andimage( int andimage_c ) throw( VError );
VImage andimage( std::vector<double> andimage_vec ) throw( VError );
VImage orimage( VImage orimage_in2 ) throw( VError );
VImage orimage( int orimage_c ) throw( VError );
VImage orimage( std::vector<double> orimage_vec ) throw( VError );
VImage eorimage( VImage eorimage_in2 ) throw( VError );
VImage eorimage( int eorimage_c ) throw( VError );
VImage eorimage( std::vector<double> eorimage_vec ) throw( VError );
VImage shiftleft( std::vector<double> shiftleft_vec ) throw( VError );
VImage shiftleft( int shiftleft_c ) throw( VError );
VImage shiftright( std::vector<double> shiftright_vec ) throw( VError );
VImage shiftright( int shiftright_c ) throw( VError );
VImage blend( VImage blend_in1, VImage blend_in2 ) throw( VError );
VImage equal( VImage equal_in2 ) throw( VError );
VImage equal( std::vector<double> equal_vec ) throw( VError );
VImage equal( double equal_c ) throw( VError );
VImage ifthenelse( VImage ifthenelse_in1, VImage ifthenelse_in2 ) throw( VE
rror );
VImage less( VImage less_in2 ) throw( VError );
VImage less( std::vector<double> less_vec ) throw( VError );
VImage less( double less_c ) throw( VError );
VImage lesseq( VImage lesseq_in2 ) throw( VError );
VImage lesseq( std::vector<double> lesseq_vec ) throw( VError );
VImage lesseq( double lesseq_c ) throw( VError );
VImage more( VImage more_in2 ) throw( VError );
VImage more( std::vector<double> more_vec ) throw( VError );
VImage more( double more_c ) throw( VError );
VImage moreeq( VImage moreeq_in2 ) throw( VError );
VImage moreeq( std::vector<double> moreeq_vec ) throw( VError );
VImage moreeq( double moreeq_c ) throw( VError );
VImage notequal( VImage notequal_in2 ) throw( VError );
VImage notequal( std::vector<double> notequal_vec ) throw( VError );
VImage notequal( double notequal_c ) throw( VError );
// headers for package format // headers for package format
// this file automatically generated from // this file automatically generated from
// VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010 // VIPS library 7.28.0-Tue Jan 31 10:51:45 GMT 2012
static VImage csv2vips( char* ) throw( VError ); static VImage csv2vips( char* csv2vips_filename ) throw( VError );
static VImage jpeg2vips( char* ) throw( VError ); static VImage fits2vips( char* fits2vips_in ) throw( VError );
static VImage magick2vips( char* ) throw( VError ); static VImage jpeg2vips( char* jpeg2vips_in ) throw( VError );
static VImage png2vips( char* ) throw( VError ); static VImage magick2vips( char* magick2vips_in ) throw( VError );
static VImage exr2vips( char* ) throw( VError ); static VImage png2vips( char* png2vips_in ) throw( VError );
static VImage ppm2vips( char* ) throw( VError ); static VImage exr2vips( char* exr2vips_in ) throw( VError );
static VImage analyze2vips( char* ) throw( VError ); static VImage ppm2vips( char* ppm2vips_filename ) throw( VError );
static VImage tiff2vips( char* ) throw( VError ); static VImage analyze2vips( char* analyze2vips_filename ) throw( VError );
void vips2csv( char* ) throw( VError ); static VImage tiff2vips( char* tiff2vips_in ) throw( VError );
void vips2jpeg( char* ) throw( VError ); void vips2csv( char* vips2csv_filename ) throw( VError );
void vips2mimejpeg( int ) throw( VError ); void vips2jpeg( char* vips2jpeg_out ) throw( VError );
void vips2png( char* ) throw( VError ); void vips2mimejpeg( int vips2mimejpeg_qfac ) throw( VError );
void vips2ppm( char* ) throw( VError ); void vips2png( char* vips2png_out ) throw( VError );
void vips2tiff( char* ) throw( VError ); void vips2ppm( char* vips2ppm_filename ) throw( VError );
void vips2tiff( char* vips2tiff_out ) throw( VError );
// headers for package freq_filt // headers for package freq_filt
// this file automatically generated from // this file automatically generated from
// VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010 // VIPS library 7.28.0-Tue Jan 31 10:51:45 GMT 2012
static VImage create_fmask( int, int, int, double, double, double, double, static VImage create_fmask( int create_fmask_width, int create_fmask_height
double ) throw( VError ); , int create_fmask_type, double create_fmask_p1, double create_fmask_p2, do
uble create_fmask_p3, double create_fmask_p4, double create_fmask_p5 ) thro
w( VError );
VImage disp_ps() throw( VError ); VImage disp_ps() throw( VError );
VImage flt_image_freq( int, double, double, double, double, double ) throw( VImage flt_image_freq( int flt_image_freq_type, double flt_image_freq_p1, d
VError ); ouble flt_image_freq_p2, double flt_image_freq_p3, double flt_image_freq_p4
static VImage fractsurf( int, double ) throw( VError ); , double flt_image_freq_p5 ) throw( VError );
VImage freqflt( VImage ) throw( VError ); static VImage fractsurf( int fractsurf_size, double fractsurf_dimension ) t
hrow( VError );
VImage freqflt( VImage freqflt_mask ) throw( VError );
VImage fwfft() throw( VError ); VImage fwfft() throw( VError );
VImage rotquad() throw( VError ); VImage rotquad() throw( VError );
VImage invfft() throw( VError ); VImage invfft() throw( VError );
VImage phasecor_fft( VImage ) throw( VError ); VImage phasecor_fft( VImage phasecor_fft_in2 ) throw( VError );
VImage invfftr() throw( VError ); VImage invfftr() throw( VError );
// headers for package histograms_lut // headers for package histograms_lut
// this file automatically generated from // this file automatically generated from
// VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010 // VIPS library 7.28.0-Tue Jan 31 10:51:45 GMT 2012
VImage gammacorrect( double ) throw( VError ); VImage gammacorrect( double gammacorrect_exponent ) throw( VError );
VImage heq( int ) throw( VError ); VImage heq( int heq_band_number ) throw( VError );
VImage hist( int ) throw( VError ); VImage hist( int hist_band_number ) throw( VError );
VImage histcum() throw( VError ); VImage histcum() throw( VError );
VImage histeq() throw( VError ); VImage histeq() throw( VError );
VImage hist_indexed( VImage ) throw( VError ); VImage hist_indexed( VImage hist_indexed_value ) throw( VError );
VImage histgr( int ) throw( VError ); VImage histgr( int histgr_band_number ) throw( VError );
VImage histnD( int ) throw( VError ); VImage histnD( int histnD_bins ) throw( VError );
VImage histnorm() throw( VError ); VImage histnorm() throw( VError );
VImage histplot() throw( VError ); VImage histplot() throw( VError );
VImage histspec( VImage ) throw( VError ); VImage histspec( VImage histspec_ref ) throw( VError );
VImage hsp( VImage ) throw( VError ); VImage hsp( VImage hsp_ref ) throw( VError );
static VImage identity( int ) throw( VError ); static VImage identity( int identity_nbands ) throw( VError );
static VImage identity_ushort( int, int ) throw( VError ); static VImage identity_ushort( int identity_ushort_nbands, int identity_ush
ort_size ) throw( VError );
int ismonotonic() throw( VError ); int ismonotonic() throw( VError );
VImage lhisteq( int, int ) throw( VError ); VImage lhisteq( int lhisteq_width, int lhisteq_height ) throw( VError );
int mpercent( double ) throw( VError ); int mpercent( double mpercent_percent ) throw( VError );
static VImage invertlut( VDMask, int ) throw( VError ); static VImage invertlut( VDMask invertlut_measures, int invertlut_lut_size
static VImage buildlut( VDMask ) throw( VError ); ) throw( VError );
VImage maplut( VImage ) throw( VError ); static VImage buildlut( VDMask buildlut_xyes ) throw( VError );
VImage project( VImage& ) throw( VError ); VImage maplut( VImage maplut_lut ) throw( VError );
VImage stdif( double, double, double, double, int, int ) throw( VError ); VImage project( VImage& project_vout ) throw( VError );
VImage tone_analyse( double, double, double, double, double, double ) throw VImage stdif( double stdif_a, double stdif_m0, double stdif_b, double stdif
( VError ); _s0, int stdif_xw, int stdif_yw ) throw( VError );
static VImage tone_build( double, double, double, double, double, double, d VImage tone_analyse( double tone_analyse_Ps, double tone_analyse_Pm, double
ouble, double ) throw( VError ); tone_analyse_Ph, double tone_analyse_S, double tone_analyse_M, double tone
static VImage tone_build_range( int, int, double, double, double, double, d _analyse_H ) throw( VError );
ouble, double, double, double ) throw( VError ); static VImage tone_build( double tone_build_Lb, double tone_build_Lw, doubl
VImage tone_map( VImage ) throw( VError ); e tone_build_Ps, double tone_build_Pm, double tone_build_Ph, double tone_bu
ild_S, double tone_build_M, double tone_build_H ) throw( VError );
static VImage tone_build_range( int tone_build_range_in_max, int tone_build
_range_out_max, double tone_build_range_Lb, double tone_build_range_Lw, dou
ble tone_build_range_Ps, double tone_build_range_Pm, double tone_build_rang
e_Ph, double tone_build_range_S, double tone_build_range_M, double tone_bui
ld_range_H ) throw( VError );
VImage tone_map( VImage tone_map_lut ) throw( VError );
// headers for package inplace // headers for package inplace
// this file automatically generated from // this file automatically generated from
// VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010 // VIPS library 7.28.0-Tue Jan 31 10:51:45 GMT 2012
void draw_circle( int, int, int, int, std::vector<double> ) throw( VError ) void draw_circle( int draw_circle_cx, int draw_circle_cy, int draw_circle_r
; adius, int draw_circle_fill, std::vector<double> draw_circle_ink ) throw( V
void draw_rect( int, int, int, int, int, std::vector<double> ) throw( VErro Error );
r ); void draw_rect( int draw_rect_left, int draw_rect_top, int draw_rect_width,
void draw_line( int, int, int, int, std::vector<double> ) throw( VError ); int draw_rect_height, int draw_rect_fill, std::vector<double> draw_rect_in
void draw_point( int, int, std::vector<double> ) throw( VError ); k ) throw( VError );
void draw_smudge( int, int, int, int ) throw( VError ); void draw_line( int draw_line_x1, int draw_line_y1, int draw_line_x2, int d
void draw_flood( int, int, std::vector<double> ) throw( VError ); raw_line_y2, std::vector<double> draw_line_ink ) throw( VError );
void draw_flood_blob( int, int, std::vector<double> ) throw( VError ); void draw_point( int draw_point_x, int draw_point_y, std::vector<double> dr
void draw_flood_other( VImage, int, int, int ) throw( VError ); aw_point_ink ) throw( VError );
void draw_image( VImage, int, int ) throw( VError ); void draw_smudge( int draw_smudge_left, int draw_smudge_top, int draw_smudg
void draw_mask( VImage, int, int, std::vector<double> ) throw( VError ); e_width, int draw_smudge_height ) throw( VError );
VImage line( VImage, VImage, std::vector<int>, std::vector<int>, std::vecto void draw_flood( int draw_flood_x, int draw_flood_y, std::vector<double> dr
r<int>, std::vector<int> ) throw( VError ); aw_flood_ink ) throw( VError );
void draw_flood_blob( int draw_flood_blob_x, int draw_flood_blob_y, std::ve
ctor<double> draw_flood_blob_ink ) throw( VError );
void draw_flood_other( VImage draw_flood_other_test, int draw_flood_other_x
, int draw_flood_other_y, int draw_flood_other_serial ) throw( VError );
void draw_image( VImage draw_image_sub, int draw_image_x, int draw_image_y
) throw( VError );
void draw_mask( VImage draw_mask_mask, int draw_mask_x, int draw_mask_y, st
d::vector<double> draw_mask_ink ) throw( VError );
VImage line( VImage line_mask, VImage line_ink, std::vector<int> line_x1, s
td::vector<int> line_y1, std::vector<int> line_x2, std::vector<int> line_y2
) throw( VError );
// headers for package iofuncs // headers for package iofuncs
// this file automatically generated from // this file automatically generated from
// VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010 // VIPS library 7.28.0-Tue Jan 31 10:51:45 GMT 2012
static VImage binfile( char*, int, int, int, int ) throw( VError ); static VImage binfile( char* binfile_filename, int binfile_width, int binfi
VImage cache( int, int, int ) throw( VError ); le_height, int binfile_bands, int binfile_offset ) throw( VError );
VImage cache( int cache_tile_width, int cache_tile_height, int cache_max_ti
les ) throw( VError );
char* getext() throw( VError ); char* getext() throw( VError );
int header_get_typeof( char* ) throw( VError ); int header_get_typeof( char* header_get_typeof_field ) throw( VError );
int header_int( char* ) throw( VError ); int header_int( char* header_int_field ) throw( VError );
double header_double( char* ) throw( VError ); double header_double( char* header_double_field ) throw( VError );
char* header_string( char* ) throw( VError ); char* header_string( char* header_string_field ) throw( VError );
char* history_get() throw( VError ); char* history_get() throw( VError );
void printdesc() throw( VError ); void printdesc() throw( VError );
// headers for package mask // headers for package mask
// this file automatically generated from // this file automatically generated from
// VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010 // VIPS library 7.28.0-Tue Jan 31 10:51:45 GMT 2012
// headers for package morphology // headers for package morphology
// this file automatically generated from // this file automatically generated from
// VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010 // VIPS library 7.28.0-Tue Jan 31 10:51:45 GMT 2012
double cntlines( int ) throw( VError ); double cntlines( int cntlines_direction ) throw( VError );
VImage dilate( VIMask ) throw( VError ); VImage dilate( VIMask dilate_mask ) throw( VError );
VImage rank( int, int, int ) throw( VError ); VImage rank( int rank_xsize, int rank_ysize, int rank_n ) throw( VError );
static VImage rank_image( std::vector<VImage>, int ) throw( VError ); static VImage rank_image( std::vector<VImage> rank_image_in, int rank_image
static VImage maxvalue( std::vector<VImage> ) throw( VError ); _index ) throw( VError );
VImage label_regions( int& ) throw( VError ); static VImage maxvalue( std::vector<VImage> maxvalue_in ) throw( VError );
VImage zerox( int ) throw( VError ); VImage label_regions( int& label_regions_segments ) throw( VError );
VImage erode( VIMask ) throw( VError ); VImage zerox( int zerox_flag ) throw( VError );
VImage profile( int ) throw( VError ); VImage erode( VIMask erode_mask ) throw( VError );
VImage profile( int profile_direction ) throw( VError );
// headers for package mosaicing // headers for package mosaicing
// this file automatically generated from // this file automatically generated from
// VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010 // VIPS library 7.28.0-Tue Jan 31 10:51:45 GMT 2012
VImage align_bands() throw( VError ); VImage align_bands() throw( VError );
double correl( VImage, int, int, int, int, int, int, int&, int& ) throw( VE double correl( VImage correl_sec, int correl_xref, int correl_yref, int cor
rror ); rel_xsec, int correl_ysec, int correl_hwindowsize, int correl_hsearchsize,
int _find_lroverlap( VImage, int, int, int, int, int, int, int, int&, doubl int& correl_x, int& correl_y ) throw( VError );
e&, double&, double&, double& ) throw( VError ); int _find_lroverlap( VImage _find_lroverlap_sec, int _find_lroverlap_bandno
int _find_tboverlap( VImage, int, int, int, int, int, int, int, int&, doubl , int _find_lroverlap_xr, int _find_lroverlap_yr, int _find_lroverlap_xs, i
e&, double&, double&, double& ) throw( VError ); nt _find_lroverlap_ys, int _find_lroverlap_halfcorrelation, int _find_lrove
VImage global_balance( double ) throw( VError ); rlap_halfarea, int& _find_lroverlap_dy0, double& _find_lroverlap_scale1, do
VImage global_balancef( double ) throw( VError ); uble& _find_lroverlap_angle1, double& _find_lroverlap_dx1, double& _find_lr
VImage lrmerge( VImage, int, int, int ) throw( VError ); overlap_dy1 ) throw( VError );
VImage lrmerge1( VImage, int, int, int, int, int, int, int, int, int ) thro int _find_tboverlap( VImage _find_tboverlap_sec, int _find_tboverlap_bandno
w( VError ); , int _find_tboverlap_xr, int _find_tboverlap_yr, int _find_tboverlap_xs, i
VImage lrmosaic( VImage, int, int, int, int, int, int, int, int, int ) thro nt _find_tboverlap_ys, int _find_tboverlap_halfcorrelation, int _find_tbove
w( VError ); rlap_halfarea, int& _find_tboverlap_dy0, double& _find_tboverlap_scale1, do
VImage lrmosaic1( VImage, int, int, int, int, int, int, int, int, int, int, uble& _find_tboverlap_angle1, double& _find_tboverlap_dx1, double& _find_tb
int, int, int ) throw( VError ); overlap_dy1 ) throw( VError );
VImage match_linear( VImage, int, int, int, int, int, int, int, int ) throw VImage global_balance( double global_balance_gamma ) throw( VError );
( VError ); VImage global_balancef( double global_balancef_gamma ) throw( VError );
VImage match_linear_search( VImage, int, int, int, int, int, int, int, int, VImage lrmerge( VImage lrmerge_sec, int lrmerge_dx, int lrmerge_dy, int lrm
int, int ) throw( VError ); erge_mwidth ) throw( VError );
double maxpos_subpel( double& ) throw( VError ); VImage lrmerge1( VImage lrmerge1_sec, int lrmerge1_xr1, int lrmerge1_yr1, i
VImage remosaic( char*, char* ) throw( VError ); nt lrmerge1_xs1, int lrmerge1_ys1, int lrmerge1_xr2, int lrmerge1_yr2, int
VImage tbmerge( VImage, int, int, int ) throw( VError ); lrmerge1_xs2, int lrmerge1_ys2, int lrmerge1_mwidth ) throw( VError );
VImage tbmerge1( VImage, int, int, int, int, int, int, int, int, int ) thro VImage lrmosaic( VImage lrmosaic_sec, int lrmosaic_bandno, int lrmosaic_xr,
w( VError ); int lrmosaic_yr, int lrmosaic_xs, int lrmosaic_ys, int lrmosaic_halfcorrel
VImage tbmosaic( VImage, int, int, int, int, int, int, int, int, int ) thro ation, int lrmosaic_halfarea, int lrmosaic_balancetype, int lrmosaic_mwidth
w( VError ); ) throw( VError );
VImage tbmosaic1( VImage, int, int, int, int, int, int, int, int, int, int, VImage lrmosaic1( VImage lrmosaic1_sec, int lrmosaic1_bandno, int lrmosaic1
int, int, int ) throw( VError ); _xr1, int lrmosaic1_yr1, int lrmosaic1_xs1, int lrmosaic1_ys1, int lrmosaic
1_xr2, int lrmosaic1_yr2, int lrmosaic1_xs2, int lrmosaic1_ys2, int lrmosai
c1_halfcorrelation, int lrmosaic1_halfarea, int lrmosaic1_balancetype, int
lrmosaic1_mwidth ) throw( VError );
VImage match_linear( VImage match_linear_sec, int match_linear_xref1, int m
atch_linear_yref1, int match_linear_xsec1, int match_linear_ysec1, int matc
h_linear_xref2, int match_linear_yref2, int match_linear_xsec2, int match_l
inear_ysec2 ) throw( VError );
VImage match_linear_search( VImage match_linear_search_sec, int match_linea
r_search_xref1, int match_linear_search_yref1, int match_linear_search_xsec
1, int match_linear_search_ysec1, int match_linear_search_xref2, int match_
linear_search_yref2, int match_linear_search_xsec2, int match_linear_search
_ysec2, int match_linear_search_hwindowsize, int match_linear_search_hsearc
hsize ) throw( VError );
double maxpos_subpel( double& maxpos_subpel_y ) throw( VError );
VImage remosaic( char* remosaic_old_str, char* remosaic_new_str ) throw( VE
rror );
VImage tbmerge( VImage tbmerge_sec, int tbmerge_dx, int tbmerge_dy, int tbm
erge_mwidth ) throw( VError );
VImage tbmerge1( VImage tbmerge1_sec, int tbmerge1_xr1, int tbmerge1_yr1, i
nt tbmerge1_xs1, int tbmerge1_ys1, int tbmerge1_xr2, int tbmerge1_yr2, int
tbmerge1_xs2, int tbmerge1_ys2, int tbmerge1_mwidth ) throw( VError );
VImage tbmosaic( VImage tbmosaic_sec, int tbmosaic_bandno, int tbmosaic_xr,
int tbmosaic_yr, int tbmosaic_xs, int tbmosaic_ys, int tbmosaic_halfcorrel
ation, int tbmosaic_halfarea, int tbmosaic_balancetype, int tbmosaic_mwidth
) throw( VError );
VImage tbmosaic1( VImage tbmosaic1_sec, int tbmosaic1_bandno, int tbmosaic1
_xr1, int tbmosaic1_yr1, int tbmosaic1_xs1, int tbmosaic1_ys1, int tbmosaic
1_xr2, int tbmosaic1_yr2, int tbmosaic1_xs2, int tbmosaic1_ys2, int tbmosai
c1_halfcorrelation, int tbmosaic1_halfarea, int tbmosaic1_balancetype, int
tbmosaic1_mwidth ) throw( VError );
// headers for package other // headers for package other
// this file automatically generated from // this file automatically generated from
// VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010 // VIPS library 7.28.0-Tue Jan 31 10:51:45 GMT 2012
VImage benchmark() throw( VError ); VImage benchmark() throw( VError );
double benchmark2() throw( VError ); double benchmark2() throw( VError );
VImage benchmarkn( int ) throw( VError ); VImage benchmarkn( int benchmarkn_n ) throw( VError );
static VImage eye( int, int, double ) throw( VError ); static VImage eye( int eye_xsize, int eye_ysize, double eye_factor ) throw(
static VImage grey( int, int ) throw( VError ); VError );
static VImage feye( int, int, double ) throw( VError ); static VImage grey( int grey_xsize, int grey_ysize ) throw( VError );
static VImage fgrey( int, int ) throw( VError ); static VImage feye( int feye_xsize, int feye_ysize, double feye_factor ) th
static VImage fzone( int ) throw( VError ); row( VError );
static VImage make_xy( int, int ) throw( VError ); static VImage fgrey( int fgrey_xsize, int fgrey_ysize ) throw( VError );
static VImage zone( int ) throw( VError ); static VImage fzone( int fzone_size ) throw( VError );
static VImage make_xy( int make_xy_xsize, int make_xy_ysize ) throw( VError
// headers for package relational );
// this file automatically generated from static VImage sines( int sines_xsize, int sines_ysize, double sines_horfreq
// VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010 , double sines_verfreq ) throw( VError );
VImage blend( VImage, VImage ) throw( VError ); static VImage zone( int zone_size ) throw( VError );
VImage equal( VImage ) throw( VError );
VImage equal( std::vector<double> ) throw( VError );
VImage equal( double ) throw( VError );
VImage ifthenelse( VImage, VImage ) throw( VError );
VImage less( VImage ) throw( VError );
VImage less( std::vector<double> ) throw( VError );
VImage less( double ) throw( VError );
VImage lesseq( VImage ) throw( VError );
VImage lesseq( std::vector<double> ) throw( VError );
VImage lesseq( double ) throw( VError );
VImage more( VImage ) throw( VError );
VImage more( std::vector<double> ) throw( VError );
VImage more( double ) throw( VError );
VImage moreeq( VImage ) throw( VError );
VImage moreeq( std::vector<double> ) throw( VError );
VImage moreeq( double ) throw( VError );
VImage notequal( VImage ) throw( VError );
VImage notequal( std::vector<double> ) throw( VError );
VImage notequal( double ) throw( VError );
// headers for package resample // headers for package resample
// this file automatically generated from // this file automatically generated from
// VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010 // VIPS library 7.28.0-Tue Jan 31 10:51:45 GMT 2012
VImage rightshift_size( int, int, int ) throw( VError ); VImage rightshift_size( int rightshift_size_xshift, int rightshift_size_ysh
VImage shrink( double, double ) throw( VError ); ift, int rightshift_size_band_fmt ) throw( VError );
VImage stretch3( double, double ) throw( VError ); VImage shrink( double shrink_xfac, double shrink_yfac ) throw( VError );
VImage stretch3( double stretch3_xdisp, double stretch3_ydisp ) throw( VErr
or );
// headers for package video // headers for package video
// this file automatically generated from // this file automatically generated from
// VIPS library 7.23.0-Thu Nov 18 12:39:29 GMT 2010 // VIPS library 7.28.0-Tue Jan 31 10:51:45 GMT 2012
static VImage video_test( int, int ) throw( VError ); static VImage video_test( int video_test_brightness, int video_test_error )
static VImage video_v4l1( char*, int, int, int, int, int, int ) throw( VErr throw( VError );
or ); static VImage video_v4l1( char* video_v4l1_device, int video_v4l1_channel,
int video_v4l1_brightness, int video_v4l1_colour, int video_v4l1_contrast,
int video_v4l1_hue, int video_v4l1_ngrabs ) throw( VError );
 End of changes. 52 change blocks. 
296 lines changed or deleted 416 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/