| arithmetic.h | | arithmetic.h | |
| | | | |
| skipping to change at line 101 | | skipping to change at line 101 | |
| typedef enum { | | typedef enum { | |
| VIPS_OPERATION_ROUND_RINT, | | VIPS_OPERATION_ROUND_RINT, | |
| VIPS_OPERATION_ROUND_CEIL, | | VIPS_OPERATION_ROUND_CEIL, | |
| VIPS_OPERATION_ROUND_FLOOR, | | VIPS_OPERATION_ROUND_FLOOR, | |
| VIPS_OPERATION_ROUND_LAST | | VIPS_OPERATION_ROUND_LAST | |
| } VipsOperationRound; | | } VipsOperationRound; | |
| | | | |
| /** | | /** | |
| * VipsOperationRelational: | | * VipsOperationRelational: | |
| * @VIPS_OPERATION_RELATIONAL_EQUAL: == | | * @VIPS_OPERATION_RELATIONAL_EQUAL: == | |
|
| * @VIPS_OPERATION_RELATIONAL_NOTEQUAL: != | | * @VIPS_OPERATION_RELATIONAL_NOTEQ: != | |
| * @VIPS_OPERATION_RELATIONAL_LESS: < | | * @VIPS_OPERATION_RELATIONAL_LESS: < | |
| * @VIPS_OPERATION_RELATIONAL_LESSEQ: <= | | * @VIPS_OPERATION_RELATIONAL_LESSEQ: <= | |
| * @VIPS_OPERATION_RELATIONAL_MORE: > | | * @VIPS_OPERATION_RELATIONAL_MORE: > | |
| * @VIPS_OPERATION_RELATIONAL_MOREEQ: >= | | * @VIPS_OPERATION_RELATIONAL_MOREEQ: >= | |
| * | | * | |
| * See also: vips_relational(). | | * See also: vips_relational(). | |
| */ | | */ | |
| typedef enum { | | typedef enum { | |
| VIPS_OPERATION_RELATIONAL_EQUAL, | | VIPS_OPERATION_RELATIONAL_EQUAL, | |
|
| VIPS_OPERATION_RELATIONAL_NOTEQUAL, | | VIPS_OPERATION_RELATIONAL_NOTEQ, | |
| VIPS_OPERATION_RELATIONAL_LESS, | | VIPS_OPERATION_RELATIONAL_LESS, | |
| VIPS_OPERATION_RELATIONAL_LESSEQ, | | VIPS_OPERATION_RELATIONAL_LESSEQ, | |
| VIPS_OPERATION_RELATIONAL_MORE, | | VIPS_OPERATION_RELATIONAL_MORE, | |
| VIPS_OPERATION_RELATIONAL_MOREEQ, | | VIPS_OPERATION_RELATIONAL_MOREEQ, | |
| VIPS_OPERATION_RELATIONAL_LAST | | VIPS_OPERATION_RELATIONAL_LAST | |
| } VipsOperationRelational; | | } VipsOperationRelational; | |
| | | | |
| /** | | /** | |
| * VipsOperationBoolean: | | * VipsOperationBoolean: | |
| * @VIPS_OPERATION_BOOLEAN_AND: & | | * @VIPS_OPERATION_BOOLEAN_AND: & | |
| * @VIPS_OPERATION_BOOLEAN_OR: | | | * @VIPS_OPERATION_BOOLEAN_OR: | | |
| * @VIPS_OPERATION_BOOLEAN_EOR: ^ | | * @VIPS_OPERATION_BOOLEAN_EOR: ^ | |
|
| | | * @VIPS_OPERATION_BOOLEAN_LSHIFT: >> | |
| | | * @VIPS_OPERATION_BOOLEAN_RSHIFT: << | |
| * | | * | |
| * See also: vips_boolean(). | | * See also: vips_boolean(). | |
| */ | | */ | |
| typedef enum { | | typedef enum { | |
| VIPS_OPERATION_BOOLEAN_AND, | | VIPS_OPERATION_BOOLEAN_AND, | |
| VIPS_OPERATION_BOOLEAN_OR, | | VIPS_OPERATION_BOOLEAN_OR, | |
| VIPS_OPERATION_BOOLEAN_EOR, | | VIPS_OPERATION_BOOLEAN_EOR, | |
| VIPS_OPERATION_BOOLEAN_LSHIFT, | | VIPS_OPERATION_BOOLEAN_LSHIFT, | |
| VIPS_OPERATION_BOOLEAN_RSHIFT, | | VIPS_OPERATION_BOOLEAN_RSHIFT, | |
| VIPS_OPERATION_BOOLEAN_LAST | | VIPS_OPERATION_BOOLEAN_LAST | |
| | | | |
| skipping to change at line 337 | | skipping to change at line 339 | |
| int vips_andimage_const( VipsImage *in, VipsImage **out, double *c, int n,
... ) | | int vips_andimage_const( VipsImage *in, VipsImage **out, double *c, int n,
... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_orimage_const( VipsImage *in, VipsImage **out, double *c, int n, .
.. ) | | int vips_orimage_const( VipsImage *in, VipsImage **out, double *c, int n, .
.. ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_eorimage_const( VipsImage *in, VipsImage **out, double *c, int n,
... ) | | int vips_eorimage_const( VipsImage *in, VipsImage **out, double *c, int n,
... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_lshift_const( VipsImage *in, VipsImage **out, double *c, int n, ..
. ) | | int vips_lshift_const( VipsImage *in, VipsImage **out, double *c, int n, ..
. ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_rshift_const( VipsImage *in, VipsImage **out, double *c, int n, ..
. ) | | int vips_rshift_const( VipsImage *in, VipsImage **out, double *c, int n, ..
. ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
|
| | | int vips_boolean_const1( VipsImage *in, VipsImage **out, | |
| | | VipsOperationBoolean boolean, double c, ... ) | |
| | | __attribute__((sentinel)); | |
| int vips_andimage_const1( VipsImage *in, VipsImage **out, double c, ... ) | | int vips_andimage_const1( VipsImage *in, VipsImage **out, double c, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_orimage_const1( VipsImage *in, VipsImage **out, double c, ... ) | | int vips_orimage_const1( VipsImage *in, VipsImage **out, double c, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_eorimage_const1( VipsImage *in, VipsImage **out, double c, ... ) | | int vips_eorimage_const1( VipsImage *in, VipsImage **out, double c, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_lshift_const1( VipsImage *in, VipsImage **out, double c, ... ) | | int vips_lshift_const1( VipsImage *in, VipsImage **out, double c, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_rshift_const1( VipsImage *in, VipsImage **out, double c, ... ) | | int vips_rshift_const1( VipsImage *in, VipsImage **out, double c, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| | | | |
End of changes. 4 change blocks. |
| 2 lines changed or deleted | | 7 lines changed or added | |
|
| conversion.h | | conversion.h | |
| | | | |
| skipping to change at line 65 | | skipping to change at line 65 | |
| } VipsDirection; | | } VipsDirection; | |
| | | | |
| typedef enum { | | typedef enum { | |
| VIPS_ALIGN_LOW, | | VIPS_ALIGN_LOW, | |
| VIPS_ALIGN_CENTRE, | | VIPS_ALIGN_CENTRE, | |
| VIPS_ALIGN_HIGH, | | VIPS_ALIGN_HIGH, | |
| VIPS_ALIGN_LAST | | VIPS_ALIGN_LAST | |
| } VipsAlign; | | } VipsAlign; | |
| | | | |
| typedef enum { | | typedef enum { | |
|
| VIPS_ANGLE_0, | | VIPS_ANGLE_D0, | |
| VIPS_ANGLE_90, | | VIPS_ANGLE_D90, | |
| VIPS_ANGLE_180, | | VIPS_ANGLE_D180, | |
| VIPS_ANGLE_270, | | VIPS_ANGLE_D270, | |
| VIPS_ANGLE_LAST | | VIPS_ANGLE_LAST | |
| } VipsAngle; | | } VipsAngle; | |
| | | | |
| typedef enum { | | typedef enum { | |
|
| VIPS_ANGLE45_0, | | VIPS_ANGLE45_D0, | |
| VIPS_ANGLE45_45, | | VIPS_ANGLE45_D45, | |
| VIPS_ANGLE45_90, | | VIPS_ANGLE45_D90, | |
| VIPS_ANGLE45_135, | | VIPS_ANGLE45_D135, | |
| VIPS_ANGLE45_180, | | VIPS_ANGLE45_D180, | |
| VIPS_ANGLE45_225, | | VIPS_ANGLE45_D225, | |
| VIPS_ANGLE45_270, | | VIPS_ANGLE45_D270, | |
| VIPS_ANGLE45_315, | | VIPS_ANGLE45_D315, | |
| VIPS_ANGLE45_LAST | | VIPS_ANGLE45_LAST | |
| } VipsAngle45; | | } VipsAngle45; | |
| | | | |
| int vips_copy( VipsImage *in, VipsImage **out, ... ) | | int vips_copy( VipsImage *in, VipsImage **out, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_tilecache( VipsImage *in, VipsImage **out, ... ) | | int vips_tilecache( VipsImage *in, VipsImage **out, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_linecache( VipsImage *in, VipsImage **out, ... ) | | int vips_linecache( VipsImage *in, VipsImage **out, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_sequential( VipsImage *in, VipsImage **out, ... ) | | int vips_sequential( VipsImage *in, VipsImage **out, ... ) | |
| | | | |
| skipping to change at line 105 | | skipping to change at line 105 | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| | | | |
| int vips_embed( VipsImage *in, VipsImage **out, | | int vips_embed( VipsImage *in, VipsImage **out, | |
| int x, int y, int width, int height, ... ) | | int x, int y, int width, int height, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_flip( VipsImage *in, VipsImage **out, VipsDirection direction, ...
) | | int vips_flip( VipsImage *in, VipsImage **out, VipsDirection direction, ...
) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_insert( VipsImage *main, VipsImage *sub, VipsImage **out, | | int vips_insert( VipsImage *main, VipsImage *sub, VipsImage **out, | |
| int x, int y, ... ) | | int x, int y, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
|
| int vips_join( VipsImage *main, VipsImage *sub, VipsImage **out, | | int vips_join( VipsImage *in1, VipsImage *in2, VipsImage **out, | |
| VipsDirection direction, ... ) | | VipsDirection direction, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
|
| int vips_extract_area( VipsImage *input, VipsImage **output, | | int vips_extract_area( VipsImage *in, VipsImage **out, | |
| int left, int top, int width, int height, ... ) | | int left, int top, int width, int height, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
|
| int vips_crop( VipsImage *input, VipsImage **output, | | int vips_crop( VipsImage *in, VipsImage **out, | |
| int left, int top, int width, int height, ... ) | | int left, int top, int width, int height, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
|
| int vips_extract_band( VipsImage *input, VipsImage **output, int band, ...
) | | int vips_extract_band( VipsImage *in, VipsImage **out, int band, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_replicate( VipsImage *in, VipsImage **out, int across, int down, .
.. ) | | int vips_replicate( VipsImage *in, VipsImage **out, int across, int down, .
.. ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_grid( VipsImage *in, VipsImage **out, | | int vips_grid( VipsImage *in, VipsImage **out, | |
| int tile_height, int across, int down, ... ) | | int tile_height, int across, int down, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_wrap( VipsImage *in, VipsImage **out, ... ) | | int vips_wrap( VipsImage *in, VipsImage **out, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_rot( VipsImage *in, VipsImage **out, VipsAngle angle, ... ) | | int vips_rot( VipsImage *in, VipsImage **out, VipsAngle angle, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_rot45( VipsImage *in, VipsImage **out, ... ) | | int vips_rot45( VipsImage *in, VipsImage **out, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
|
| | | VipsAngle vips_autorot_get_angle( VipsImage *im ); | |
| | | int vips_autorot( VipsImage *in, VipsImage **out, ... ) | |
| | | __attribute__((sentinel)); | |
| int vips_zoom( VipsImage *in, VipsImage **out, int xfac, int yfac, ... ) | | int vips_zoom( VipsImage *in, VipsImage **out, int xfac, int yfac, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_subsample( VipsImage *in, VipsImage **out, int xfac, int yfac, ...
) | | int vips_subsample( VipsImage *in, VipsImage **out, int xfac, int yfac, ...
) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| | | | |
| int vips_cast( VipsImage *in, VipsImage **out, VipsBandFormat format, ... ) | | int vips_cast( VipsImage *in, VipsImage **out, VipsBandFormat format, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_cast_uchar( VipsImage *in, VipsImage **out, ... ) | | int vips_cast_uchar( VipsImage *in, VipsImage **out, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_cast_char( VipsImage *in, VipsImage **out, ... ) | | int vips_cast_char( VipsImage *in, VipsImage **out, ... ) | |
| | | | |
| skipping to change at line 167 | | skipping to change at line 170 | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| | | | |
| int vips_bandjoin( VipsImage **in, VipsImage **out, int n, ... ) | | int vips_bandjoin( VipsImage **in, VipsImage **out, int n, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_bandjoin2( VipsImage *in1, VipsImage *in2, VipsImage **out, ... ) | | int vips_bandjoin2( VipsImage *in1, VipsImage *in2, VipsImage **out, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_bandrank( VipsImage **in, VipsImage **out, int n, ... ) | | int vips_bandrank( VipsImage **in, VipsImage **out, int n, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| | | | |
| int vips_bandbool( VipsImage *in, VipsImage **out, | | int vips_bandbool( VipsImage *in, VipsImage **out, | |
|
| VipsOperationBoolean operation, ... ) | | VipsOperationBoolean boolean, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_bandand( VipsImage *in, VipsImage **out, ... ) | | int vips_bandand( VipsImage *in, VipsImage **out, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_bandor( VipsImage *in, VipsImage **out, ... ) | | int vips_bandor( VipsImage *in, VipsImage **out, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_bandeor( VipsImage *in, VipsImage **out, ... ) | | int vips_bandeor( VipsImage *in, VipsImage **out, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_bandmean( VipsImage *in, VipsImage **out, ... ) | | int vips_bandmean( VipsImage *in, VipsImage **out, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| | | | |
| | | | |
| skipping to change at line 192 | | skipping to change at line 195 | |
| VipsImage **out, ... ) | | VipsImage **out, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_flatten( VipsImage *in, VipsImage **out, ... ) | | int vips_flatten( VipsImage *in, VipsImage **out, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| | | | |
| int vips_falsecolour( VipsImage *in, VipsImage **out, ... ) | | int vips_falsecolour( VipsImage *in, VipsImage **out, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_gamma( VipsImage *in, VipsImage **out, ... ) | | int vips_gamma( VipsImage *in, VipsImage **out, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| | | | |
|
| int im_insertset( VipsImage *main, VipsImage *sub, VipsImage *out, int n, i | | | |
| nt *x, int *y ); | | | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif /*__cplusplus*/ | | #endif /*__cplusplus*/ | |
| | | | |
| #endif /*VIPS_CONVERSION_H*/ | | #endif /*VIPS_CONVERSION_H*/ | |
| | | | |
End of changes. 9 change blocks. |
| 20 lines changed or deleted | | 20 lines changed or added | |
|
| foreign.h | | foreign.h | |
| | | | |
| skipping to change at line 162 | | skipping to change at line 162 | |
| typedef struct _VipsForeignLoadClass { | | typedef struct _VipsForeignLoadClass { | |
| VipsForeignClass parent_class; | | VipsForeignClass parent_class; | |
| /*< public >*/ | | /*< public >*/ | |
| | | | |
| /* Is a file in this format. | | /* Is a file in this format. | |
| * | | * | |
| * This function should return %TRUE if the file contains an image o
f | | * This function should return %TRUE if the file contains an image o
f | |
| * this type. If you don't define this function, #VipsForeignLoad | | * this type. If you don't define this function, #VipsForeignLoad | |
| * will use @suffs instead. | | * will use @suffs instead. | |
| */ | | */ | |
|
| gboolean (*is_a)( const char * ); | | gboolean (*is_a)( const char *filename ); | |
| | | | |
| /* Is a buffer in this format. | | /* Is a buffer in this format. | |
| * | | * | |
| * This function should return %TRUE if the buffer contains an image
of | | * This function should return %TRUE if the buffer contains an image
of | |
| * this type. | | * this type. | |
| */ | | */ | |
|
| gboolean (*is_a_buffer)( void *, size_t ); | | gboolean (*is_a_buffer)( void *data, size_t size ); | |
| | | | |
| /* Get the flags from a filename. | | /* Get the flags from a filename. | |
| * | | * | |
| * This function should examine the file and return a set | | * This function should examine the file and return a set | |
| * of flags. If you don't define it, vips will default to 0 (no flag
s | | * of flags. If you don't define it, vips will default to 0 (no flag
s | |
| * set). | | * set). | |
| * | | * | |
| * This operation is necessary for vips7 compatibility. | | * This operation is necessary for vips7 compatibility. | |
| */ | | */ | |
|
| VipsForeignFlags (*get_flags_filename)( const char * ); | | VipsForeignFlags (*get_flags_filename)( const char *filename ); | |
| | | | |
| /* Get the flags for this load operation. Images can be loaded from | | /* Get the flags for this load operation. Images can be loaded from | |
| * (for example) memory areas rather than files, so you can't just u
se | | * (for example) memory areas rather than files, so you can't just u
se | |
| * @get_flags_filename(). | | * @get_flags_filename(). | |
| */ | | */ | |
|
| VipsForeignFlags (*get_flags)( VipsForeignLoad * ); | | VipsForeignFlags (*get_flags)( VipsForeignLoad *load ); | |
| | | | |
| /* Do the minimum read we can. | | /* Do the minimum read we can. | |
| * | | * | |
| * Set the header fields in @out from @filename. If you can read the | | * Set the header fields in @out from @filename. If you can read the | |
| * whole image as well with no performance cost (as with vipsload), | | * whole image as well with no performance cost (as with vipsload), | |
| * or if your loader does not support reading only the header, read | | * or if your loader does not support reading only the header, read | |
| * the entire image in this method and leave @load() NULL. | | * the entire image in this method and leave @load() NULL. | |
| * | | * | |
| * @header() needs to set the dhint on the image .. otherwise you ge
t | | * @header() needs to set the dhint on the image .. otherwise you ge
t | |
| * the default SMALLTILE. | | * the default SMALLTILE. | |
| * | | * | |
| * Return 0 for success, -1 for error, setting | | * Return 0 for success, -1 for error, setting | |
| * vips_error(). | | * vips_error(). | |
| */ | | */ | |
|
| int (*header)( VipsForeignLoad * ); | | int (*header)( VipsForeignLoad *load ); | |
| | | | |
| /* Read the whole image into @real. The pixels will get copied to @o
ut | | /* Read the whole image into @real. The pixels will get copied to @o
ut | |
| * later. | | * later. | |
| * | | * | |
| * You can omit this method if you define a @header() method which | | * You can omit this method if you define a @header() method which | |
| * loads the whole file. | | * loads the whole file. | |
| * | | * | |
| * Return 0 for success, -1 for error, setting | | * Return 0 for success, -1 for error, setting | |
| * vips_error(). | | * vips_error(). | |
| */ | | */ | |
|
| int (*load)( VipsForeignLoad * ); | | int (*load)( VipsForeignLoad *load ); | |
| } VipsForeignLoadClass; | | } VipsForeignLoadClass; | |
| | | | |
| GType vips_foreign_load_get_type( void ); | | GType vips_foreign_load_get_type( void ); | |
| | | | |
| const char *vips_foreign_find_load( const char *filename ); | | const char *vips_foreign_find_load( const char *filename ); | |
|
| const char *vips_foreign_find_load_buffer( void *buf, size_t len ); | | const char *vips_foreign_find_load_buffer( void *data, size_t size ); | |
| | | | |
| VipsForeignFlags vips_foreign_flags( const char *loader, const char *filena
me ); | | VipsForeignFlags vips_foreign_flags( const char *loader, const char *filena
me ); | |
| gboolean vips_foreign_is_a( const char *loader, const char *filename ); | | gboolean vips_foreign_is_a( const char *loader, const char *filename ); | |
| | | | |
| #define VIPS_TYPE_FOREIGN_SAVE (vips_foreign_save_get_type()) | | #define VIPS_TYPE_FOREIGN_SAVE (vips_foreign_save_get_type()) | |
| #define VIPS_FOREIGN_SAVE( obj ) \ | | #define VIPS_FOREIGN_SAVE( obj ) \ | |
| (G_TYPE_CHECK_INSTANCE_CAST( (obj), \ | | (G_TYPE_CHECK_INSTANCE_CAST( (obj), \ | |
| VIPS_TYPE_FOREIGN_SAVE, VipsForeignSave )) | | VIPS_TYPE_FOREIGN_SAVE, VipsForeignSave )) | |
| #define VIPS_FOREIGN_SAVE_CLASS( klass ) \ | | #define VIPS_FOREIGN_SAVE_CLASS( klass ) \ | |
| (G_TYPE_CHECK_CLASS_CAST( (klass), \ | | (G_TYPE_CHECK_CLASS_CAST( (klass), \ | |
| | | | |
| skipping to change at line 259 | | skipping to change at line 259 | |
| VIPS_SAVEABLE_RGB, | | VIPS_SAVEABLE_RGB, | |
| VIPS_SAVEABLE_RGBA, | | VIPS_SAVEABLE_RGBA, | |
| VIPS_SAVEABLE_RGB_CMYK, | | VIPS_SAVEABLE_RGB_CMYK, | |
| VIPS_SAVEABLE_ANY, | | VIPS_SAVEABLE_ANY, | |
| VIPS_SAVEABLE_LAST | | VIPS_SAVEABLE_LAST | |
| } VipsSaveable; | | } VipsSaveable; | |
| | | | |
| typedef struct _VipsForeignSave { | | typedef struct _VipsForeignSave { | |
| VipsForeign parent_object; | | VipsForeign parent_object; | |
| | | | |
|
| /* Dont't attach metadata. | | /* Don't attach metadata. | |
| */ | | */ | |
| gboolean strip; | | gboolean strip; | |
| | | | |
|
| | | /* If flattening out alpha, the background colour to use. Default to | |
| | | * 0 (black). | |
| | | */ | |
| | | VipsArrayDouble *background; | |
| | | | |
| /*< public >*/ | | /*< public >*/ | |
| | | | |
| /* The image we are to save, as supplied by our caller. | | /* The image we are to save, as supplied by our caller. | |
| */ | | */ | |
| VipsImage *in; | | VipsImage *in; | |
| | | | |
| /* @in converted to a saveable format (eg. 8-bit RGB) according to t
he | | /* @in converted to a saveable format (eg. 8-bit RGB) according to t
he | |
| * instructions you give in the class fields below. | | * instructions you give in the class fields below. | |
| * | | * | |
| * This is the image you should actually write to the output. | | * This is the image you should actually write to the output. | |
| | | | |
| skipping to change at line 434 | | skipping to change at line 439 | |
| int vips_matrixload( const char *filename, VipsImage **out, ... ) | | int vips_matrixload( const char *filename, VipsImage **out, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_matrixsave( VipsImage *in, const char *filename, ... ) | | int vips_matrixsave( VipsImage *in, const char *filename, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_matrixprint( VipsImage *in, ... ) | | int vips_matrixprint( VipsImage *in, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| | | | |
| int vips_magickload( const char *filename, VipsImage **out, ... ) | | int vips_magickload( const char *filename, VipsImage **out, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| | | | |
|
| | | /** | |
| | | * VipsForeignPngFilter: | |
| | | * @VIPS_FOREIGN_PNG_FILTER_NONE: no filtering | |
| | | * @VIPS_FOREIGN_PNG_FILTER_SUB: difference to the left | |
| | | * @VIPS_FOREIGN_PNG_FILTER_UP: difference up | |
| | | * @VIPS_FOREIGN_PNG_FILTER_AVG: average of left and up | |
| | | * @VIPS_FOREIGN_PNG_FILTER_PAETH: pick best neighbor predictor automatical | |
| | | ly | |
| | | * @VIPS_FOREIGN_PNG_FILTER_ALL: adaptive | |
| | | * | |
| | | * http://www.w3.org/TR/PNG-Filters.html | |
| | | * The values mirror those of png.h in libpng. | |
| | | */ | |
| | | typedef enum /*< flags >*/ { | |
| | | VIPS_FOREIGN_PNG_FILTER_NONE = 0x08, | |
| | | VIPS_FOREIGN_PNG_FILTER_SUB = 0x10, | |
| | | VIPS_FOREIGN_PNG_FILTER_UP = 0x20, | |
| | | VIPS_FOREIGN_PNG_FILTER_AVG = 0x40, | |
| | | VIPS_FOREIGN_PNG_FILTER_PAETH = 0x80, | |
| | | VIPS_FOREIGN_PNG_FILTER_ALL = 0xEA | |
| | | } VipsForeignPngFilter; | |
| | | | |
| int vips_pngload( const char *filename, VipsImage **out, ... ) | | int vips_pngload( const char *filename, VipsImage **out, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_pngload_buffer( void *buf, size_t len, VipsImage **out, ... ) | | int vips_pngload_buffer( void *buf, size_t len, VipsImage **out, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_pngsave( VipsImage *in, const char *filename, ... ) | | int vips_pngsave( VipsImage *in, const char *filename, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_pngsave_buffer( VipsImage *in, void **buf, size_t *len, ... ) | | int vips_pngsave_buffer( VipsImage *in, void **buf, size_t *len, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| | | | |
| int vips_ppmload( const char *filename, VipsImage **out, ... ) | | int vips_ppmload( const char *filename, VipsImage **out, ... ) | |
| | | | |
| skipping to change at line 499 | | skipping to change at line 525 | |
| * @VIPS_FOREIGN_DZ_CONTAINER_ZIP: write tiles to a zip file | | * @VIPS_FOREIGN_DZ_CONTAINER_ZIP: write tiles to a zip file | |
| * | | * | |
| * How many pyramid layers to create. | | * How many pyramid layers to create. | |
| */ | | */ | |
| typedef enum { | | typedef enum { | |
| VIPS_FOREIGN_DZ_CONTAINER_FS, | | VIPS_FOREIGN_DZ_CONTAINER_FS, | |
| VIPS_FOREIGN_DZ_CONTAINER_ZIP, | | VIPS_FOREIGN_DZ_CONTAINER_ZIP, | |
| VIPS_FOREIGN_DZ_CONTAINER_LAST | | VIPS_FOREIGN_DZ_CONTAINER_LAST | |
| } VipsForeignDzContainer; | | } VipsForeignDzContainer; | |
| | | | |
|
| int vips_dzsave( VipsImage *in, const char *basename, ... ) | | int vips_dzsave( VipsImage *in, const char *name, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif /*__cplusplus*/ | | #endif /*__cplusplus*/ | |
| | | | |
| #endif /*VIPS_FOREIGN_H*/ | | #endif /*VIPS_FOREIGN_H*/ | |
| | | | |
End of changes. 11 change blocks. |
| 9 lines changed or deleted | | 36 lines changed or added | |
|
| image.h | | image.h | |
| | | | |
| skipping to change at line 409 | | skipping to change at line 409 | |
| #define VIPS_MATRIX( I, X, Y ) \ | | #define VIPS_MATRIX( I, X, Y ) \ | |
| ((double *) VIPS_IMAGE_ADDR( I, X, Y )) | | ((double *) VIPS_IMAGE_ADDR( I, X, Y )) | |
| #endif /*VIPS_DEBUG*/ | | #endif /*VIPS_DEBUG*/ | |
| | | | |
| void vips_image_invalidate_all( VipsImage *image ); | | void vips_image_invalidate_all( VipsImage *image ); | |
| | | | |
| void vips_image_minimise_all( VipsImage *image ); | | void vips_image_minimise_all( VipsImage *image ); | |
| | | | |
| void vips_image_set_progress( VipsImage *image, gboolean progress ); | | void vips_image_set_progress( VipsImage *image, gboolean progress ); | |
| | | | |
|
| | | char *vips_filename_get_filename( const char *vips_filename ); | |
| | | char *vips_filename_get_options( const char *vips_filename ); | |
| | | | |
| VipsImage *vips_image_new( void ); | | VipsImage *vips_image_new( void ); | |
| VipsImage *vips_image_new_memory( void ); | | VipsImage *vips_image_new_memory( void ); | |
| VipsImage *vips_image_new_from_file( const char *name, ... ) | | VipsImage *vips_image_new_from_file( const char *name, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| VipsImage *vips_image_new_from_file_RW( const char *filename ); | | VipsImage *vips_image_new_from_file_RW( const char *filename ); | |
| VipsImage *vips_image_new_from_file_raw( const char *filename, | | VipsImage *vips_image_new_from_file_raw( const char *filename, | |
| int xsize, int ysize, int bands, guint64 offset ); | | int xsize, int ysize, int bands, guint64 offset ); | |
|
| VipsImage *vips_image_new_from_memory( void *buffer, | | VipsImage *vips_image_new_from_memory( void *data, size_t size, | |
| int xsize, int ysize, int bands, VipsBandFormat bandfmt ); | | int width, int height, int bands, VipsBandFormat format ); | |
| VipsImage *vips_image_new_from_buffer( void *buf, size_t len, | | VipsImage *vips_image_new_from_buffer( void *buf, size_t len, | |
| const char *option_string, ... ) | | const char *option_string, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| VipsImage *vips_image_new_matrix( int width, int height ); | | VipsImage *vips_image_new_matrix( int width, int height ); | |
| VipsImage *vips_image_new_matrixv( int width, int height, ... ); | | VipsImage *vips_image_new_matrixv( int width, int height, ... ); | |
|
| | | VipsImage *vips_image_new_matrix_from_array( int width, int height, | |
| | | double *array, int size ); | |
| void vips_image_set_delete_on_close( VipsImage *image, | | void vips_image_set_delete_on_close( VipsImage *image, | |
| gboolean delete_on_close ); | | gboolean delete_on_close ); | |
|
| | | guint64 vips_get_disc_threshold( void ); | |
| VipsImage *vips_image_new_temp_file( const char *format ); | | VipsImage *vips_image_new_temp_file( const char *format ); | |
| | | | |
| int vips_image_write( VipsImage *image, VipsImage *out ); | | int vips_image_write( VipsImage *image, VipsImage *out ); | |
|
| int vips_image_write_to_file( VipsImage *image, const char *filename, ... ) | | int vips_image_write_to_file( VipsImage *image, const char *name, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_image_write_to_buffer( VipsImage *in, | | int vips_image_write_to_buffer( VipsImage *in, | |
|
| const char *name, void **buf, size_t *len, ... ) | | const char *suffix, void **buf, size_t *size, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
|
| int vips_image_write_to_memory( VipsImage *in, | | void *vips_image_write_to_memory( VipsImage *in, size_t *size ); | |
| void **buf_out, size_t *len_out ); | | | |
| | | | |
|
| int vips_image_decode_predict( VipsImage *im, | | int vips_image_decode_predict( VipsImage *in, | |
| int *bands, VipsBandFormat *format ); | | int *bands, VipsBandFormat *format ); | |
| int vips_image_decode( VipsImage *in, VipsImage **out ); | | int vips_image_decode( VipsImage *in, VipsImage **out ); | |
| int vips_image_encode( VipsImage *in, VipsImage **out, VipsCoding coding ); | | int vips_image_encode( VipsImage *in, VipsImage **out, VipsCoding coding ); | |
| | | | |
| gboolean vips_image_isMSBfirst( VipsImage *image ); | | gboolean vips_image_isMSBfirst( VipsImage *image ); | |
| gboolean vips_image_isfile( VipsImage *image ); | | gboolean vips_image_isfile( VipsImage *image ); | |
| gboolean vips_image_ispartial( VipsImage *image ); | | gboolean vips_image_ispartial( VipsImage *image ); | |
| | | | |
| int vips_image_wio_input( VipsImage *image ); | | int vips_image_wio_input( VipsImage *image ); | |
| int vips_image_pio_input( VipsImage *image ); | | int vips_image_pio_input( VipsImage *image ); | |
| | | | |
| skipping to change at line 462 | | skipping to change at line 467 | |
| | | | |
| gboolean vips_band_format_isint( VipsBandFormat format ); | | gboolean vips_band_format_isint( VipsBandFormat format ); | |
| gboolean vips_band_format_isuint( VipsBandFormat format ); | | gboolean vips_band_format_isuint( VipsBandFormat format ); | |
| gboolean vips_band_format_is8bit( VipsBandFormat format ); | | gboolean vips_band_format_is8bit( VipsBandFormat format ); | |
| gboolean vips_band_format_isfloat( VipsBandFormat format ); | | gboolean vips_band_format_isfloat( VipsBandFormat format ); | |
| gboolean vips_band_format_iscomplex( VipsBandFormat format ); | | gboolean vips_band_format_iscomplex( VipsBandFormat format ); | |
| | | | |
| int vips_system( const char *cmd_format, ... ) | | int vips_system( const char *cmd_format, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| | | | |
|
| /* Defined in type.c, but declared here since they use VipsImage. | | /* Defined in type.c but declared here, since they use VipsImage. | |
| */ | | */ | |
|
| | | VipsArrayImage *vips_array_image_new( VipsImage **array, int n ); | |
| | | VipsArrayImage *vips_array_image_newv( int n, ... ); | |
| | | VipsImage **vips_array_image_get( VipsArrayImage *array, int *n ); | |
| VipsImage **vips_value_get_array_image( const GValue *value, int *n ); | | VipsImage **vips_value_get_array_image( const GValue *value, int *n ); | |
|
| int vips_value_set_array_image( GValue *value, VipsImage **array, int n ); | | void vips_value_set_array_image( GValue *value, int n ); | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif /*__cplusplus*/ | | #endif /*__cplusplus*/ | |
| | | | |
| #endif /*VIPS_IMAGE_H*/ | | #endif /*VIPS_IMAGE_H*/ | |
| | | | |
End of changes. 11 change blocks. |
| 9 lines changed or deleted | | 17 lines changed or added | |
|
| object.h | | object.h | |
| | | | |
| skipping to change at line 66 | | skipping to change at line 66 | |
| */ | | */ | |
| | | | |
| typedef enum /*< flags >*/ { | | typedef enum /*< flags >*/ { | |
| VIPS_ARGUMENT_NONE = 0, | | VIPS_ARGUMENT_NONE = 0, | |
| VIPS_ARGUMENT_REQUIRED = 1, | | VIPS_ARGUMENT_REQUIRED = 1, | |
| VIPS_ARGUMENT_CONSTRUCT = 2, | | VIPS_ARGUMENT_CONSTRUCT = 2, | |
| VIPS_ARGUMENT_SET_ONCE = 4, | | VIPS_ARGUMENT_SET_ONCE = 4, | |
| VIPS_ARGUMENT_SET_ALWAYS = 8, | | VIPS_ARGUMENT_SET_ALWAYS = 8, | |
| VIPS_ARGUMENT_INPUT = 16, | | VIPS_ARGUMENT_INPUT = 16, | |
| VIPS_ARGUMENT_OUTPUT = 32, | | VIPS_ARGUMENT_OUTPUT = 32, | |
|
| VIPS_ARGUMENT_DEPRECATED = 64 | | VIPS_ARGUMENT_DEPRECATED = 64, | |
| | | VIPS_ARGUMENT_MODIFY = 128 | |
| } VipsArgumentFlags; | | } VipsArgumentFlags; | |
| | | | |
| /* Useful flag combinations. User-visible ones are: | | /* Useful flag combinations. User-visible ones are: | |
| | | | |
| VIPS_ARGUMENT_REQUIRED_INPUT Eg. the "left" argument for an add operation | | VIPS_ARGUMENT_REQUIRED_INPUT Eg. the "left" argument for an add operation | |
| | | | |
| VIPS_ARGUMENT_OPTIONAL_INPUT Eg. the "caption" for an object | | VIPS_ARGUMENT_OPTIONAL_INPUT Eg. the "caption" for an object | |
| | | | |
| VIPS_ARGUMENT_REQUIRED_OUTPUT Eg. the "result" of an add operation | | VIPS_ARGUMENT_REQUIRED_OUTPUT Eg. the "result" of an add operation | |
| | | | |
| | | | |
| skipping to change at line 109 | | skipping to change at line 110 | |
| (VIPS_ARGUMENT_OUTPUT | \ | | (VIPS_ARGUMENT_OUTPUT | \ | |
| VIPS_ARGUMENT_CONSTRUCT) | | VIPS_ARGUMENT_CONSTRUCT) | |
| | | | |
| extern int _vips__argument_id; | | extern int _vips__argument_id; | |
| | | | |
| #define VIPS_ARG_IMAGE( CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET )
{ \ | | #define VIPS_ARG_IMAGE( CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET )
{ \ | |
| GParamSpec *pspec; \ | | GParamSpec *pspec; \ | |
| \ | | \ | |
| pspec = g_param_spec_object( (NAME), (LONG), (DESC), \ | | pspec = g_param_spec_object( (NAME), (LONG), (DESC), \ | |
| VIPS_TYPE_IMAGE, \ | | VIPS_TYPE_IMAGE, \ | |
|
| G_PARAM_READWRITE ); \ | | (GParamFlags) (G_PARAM_READWRITE) ); \ | |
| g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ | | g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ | |
| _vips__argument_id++, pspec ); \ | | _vips__argument_id++, pspec ); \ | |
| vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | | vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | |
|
| pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ | | pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) );
\ | |
| } | | } | |
| | | | |
| #define VIPS_ARG_INTERPOLATE( CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFF
SET ) { \ | | #define VIPS_ARG_INTERPOLATE( CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFF
SET ) { \ | |
| GParamSpec *pspec; \ | | GParamSpec *pspec; \ | |
| \ | | \ | |
| pspec = g_param_spec_object( (NAME), (LONG), (DESC), \ | | pspec = g_param_spec_object( (NAME), (LONG), (DESC), \ | |
| VIPS_TYPE_INTERPOLATE, \ | | VIPS_TYPE_INTERPOLATE, \ | |
|
| G_PARAM_READWRITE ); \ | | (GParamFlags) (G_PARAM_READWRITE) ); \ | |
| g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ | | g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ | |
| _vips__argument_id++, pspec ); \ | | _vips__argument_id++, pspec ); \ | |
| vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | | vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | |
|
| pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ | | pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) );
\ | |
| } | | } | |
| | | | |
| #define VIPS_ARG_BOOL( CLASS, NAME, PRIORITY, LONG, DESC, \ | | #define VIPS_ARG_BOOL( CLASS, NAME, PRIORITY, LONG, DESC, \ | |
| FLAGS, OFFSET, VALUE ) { \ | | FLAGS, OFFSET, VALUE ) { \ | |
| GParamSpec *pspec; \ | | GParamSpec *pspec; \ | |
| \ | | \ | |
| pspec = g_param_spec_boolean( (NAME), (LONG), (DESC), \ | | pspec = g_param_spec_boolean( (NAME), (LONG), (DESC), \ | |
| (VALUE), \ | | (VALUE), \ | |
|
| G_PARAM_READWRITE ); \ | | (GParamFlags) (G_PARAM_READWRITE) ); \ | |
| g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ | | g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ | |
| _vips__argument_id++, pspec ); \ | | _vips__argument_id++, pspec ); \ | |
| vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | | vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | |
|
| pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ | | pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) );
\ | |
| } | | } | |
| | | | |
| #define VIPS_ARG_DOUBLE( CLASS, NAME, PRIORITY, LONG, DESC, \ | | #define VIPS_ARG_DOUBLE( CLASS, NAME, PRIORITY, LONG, DESC, \ | |
| FLAGS, OFFSET, MIN, MAX, VALUE ) { \ | | FLAGS, OFFSET, MIN, MAX, VALUE ) { \ | |
| GParamSpec *pspec; \ | | GParamSpec *pspec; \ | |
| \ | | \ | |
| pspec = g_param_spec_double( (NAME), (LONG), (DESC), \ | | pspec = g_param_spec_double( (NAME), (LONG), (DESC), \ | |
| (MIN), (MAX), (VALUE), \ | | (MIN), (MAX), (VALUE), \ | |
|
| G_PARAM_READWRITE );\ | | (GParamFlags) (G_PARAM_READWRITE) );\ | |
| g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ | | g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ | |
| _vips__argument_id++, pspec ); \ | | _vips__argument_id++, pspec ); \ | |
| vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | | vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | |
|
| pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ | | pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) );
\ | |
| } | | } | |
| | | | |
| #define VIPS_ARG_BOXED( CLASS, NAME, PRIORITY, LONG, DESC, \ | | #define VIPS_ARG_BOXED( CLASS, NAME, PRIORITY, LONG, DESC, \ | |
| FLAGS, OFFSET, TYPE ) { \ | | FLAGS, OFFSET, TYPE ) { \ | |
| GParamSpec *pspec; \ | | GParamSpec *pspec; \ | |
| \ | | \ | |
| pspec = g_param_spec_boxed( (NAME), (LONG), (DESC), \ | | pspec = g_param_spec_boxed( (NAME), (LONG), (DESC), \ | |
| (TYPE), \ | | (TYPE), \ | |
|
| G_PARAM_READWRITE );\ | | (GParamFlags) (G_PARAM_READWRITE) );\ | |
| g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ | | g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ | |
| _vips__argument_id++, pspec ); \ | | _vips__argument_id++, pspec ); \ | |
| vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | | vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | |
|
| pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ | | pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) );
\ | |
| } | | } | |
| | | | |
| #define VIPS_ARG_INT( CLASS, NAME, PRIORITY, LONG, DESC, \ | | #define VIPS_ARG_INT( CLASS, NAME, PRIORITY, LONG, DESC, \ | |
| FLAGS, OFFSET, MIN, MAX, VALUE ) { \ | | FLAGS, OFFSET, MIN, MAX, VALUE ) { \ | |
| GParamSpec *pspec; \ | | GParamSpec *pspec; \ | |
| \ | | \ | |
| pspec = g_param_spec_int( (NAME), (LONG), (DESC), \ | | pspec = g_param_spec_int( (NAME), (LONG), (DESC), \ | |
| (MIN), (MAX), (VALUE), \ | | (MIN), (MAX), (VALUE), \ | |
|
| G_PARAM_READWRITE );\ | | (GParamFlags) (G_PARAM_READWRITE) );\ | |
| g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ | | g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ | |
| _vips__argument_id++, pspec ); \ | | _vips__argument_id++, pspec ); \ | |
| vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | | vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | |
|
| pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ | | pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) );
\ | |
| } | | } | |
| | | | |
| #define VIPS_ARG_UINT64( CLASS, NAME, PRIORITY, LONG, DESC, \ | | #define VIPS_ARG_UINT64( CLASS, NAME, PRIORITY, LONG, DESC, \ | |
| FLAGS, OFFSET, MIN, MAX, VALUE ) { \ | | FLAGS, OFFSET, MIN, MAX, VALUE ) { \ | |
| GParamSpec *pspec; \ | | GParamSpec *pspec; \ | |
| \ | | \ | |
| pspec = g_param_spec_uint64( (NAME), (LONG), (DESC), \ | | pspec = g_param_spec_uint64( (NAME), (LONG), (DESC), \ | |
| (MIN), (MAX), (VALUE), \ | | (MIN), (MAX), (VALUE), \ | |
|
| G_PARAM_READWRITE );\ | | (GParamFlags) (G_PARAM_READWRITE) );\ | |
| g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ | | g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ | |
| _vips__argument_id++, pspec ); \ | | _vips__argument_id++, pspec ); \ | |
| vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | | vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | |
|
| pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ | | pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) );
\ | |
| } | | } | |
| | | | |
| #define VIPS_ARG_ENUM( CLASS, NAME, PRIORITY, LONG, DESC, \ | | #define VIPS_ARG_ENUM( CLASS, NAME, PRIORITY, LONG, DESC, \ | |
| FLAGS, OFFSET, TYPE, VALUE ) { \ | | FLAGS, OFFSET, TYPE, VALUE ) { \ | |
| GParamSpec *pspec; \ | | GParamSpec *pspec; \ | |
| \ | | \ | |
| pspec = g_param_spec_enum( (NAME), (LONG), (DESC), \ | | pspec = g_param_spec_enum( (NAME), (LONG), (DESC), \ | |
| (TYPE), (VALUE), \ | | (TYPE), (VALUE), \ | |
|
| G_PARAM_READWRITE );\ | | (GParamFlags) (G_PARAM_READWRITE) );\ | |
| g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ | | g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ | |
| _vips__argument_id++, pspec ); \ | | _vips__argument_id++, pspec ); \ | |
| vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | | vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | |
|
| pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ | | pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) );
\ | |
| } | | } | |
| | | | |
| #define VIPS_ARG_FLAGS( CLASS, NAME, PRIORITY, LONG, DESC, \ | | #define VIPS_ARG_FLAGS( CLASS, NAME, PRIORITY, LONG, DESC, \ | |
| FLAGS, OFFSET, TYPE, VALUE ) { \ | | FLAGS, OFFSET, TYPE, VALUE ) { \ | |
| GParamSpec *pspec; \ | | GParamSpec *pspec; \ | |
| \ | | \ | |
| pspec = g_param_spec_flags( (NAME), (LONG), (DESC), \ | | pspec = g_param_spec_flags( (NAME), (LONG), (DESC), \ | |
| (TYPE), (VALUE), \ | | (TYPE), (VALUE), \ | |
|
| G_PARAM_READWRITE );\ | | (GParamFlags) (G_PARAM_READWRITE) );\ | |
| g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ | | g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ | |
| _vips__argument_id++, pspec ); \ | | _vips__argument_id++, pspec ); \ | |
| vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | | vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | |
|
| pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ | | pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) );
\ | |
| } | | } | |
| | | | |
| #define VIPS_ARG_STRING( CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET,
\ | | #define VIPS_ARG_STRING( CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET,
\ | |
| VALUE ) { \ | | VALUE ) { \ | |
| GParamSpec *pspec; \ | | GParamSpec *pspec; \ | |
| \ | | \ | |
| pspec = g_param_spec_string( (NAME), (LONG), (DESC), \ | | pspec = g_param_spec_string( (NAME), (LONG), (DESC), \ | |
| (VALUE), \ | | (VALUE), \ | |
|
| G_PARAM_READWRITE ); \ | | (GParamFlags) (G_PARAM_READWRITE) ); \ | |
| g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ | | g_object_class_install_property( G_OBJECT_CLASS( CLASS ), \ | |
| _vips__argument_id++, pspec ); \ | | _vips__argument_id++, pspec ); \ | |
| vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | | vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | |
|
| pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ | | pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) );
\ | |
| } | | } | |
| | | | |
| #define VIPS_ARG_POINTER( CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET
) { \ | | #define VIPS_ARG_POINTER( CLASS, NAME, PRIORITY, LONG, DESC, FLAGS, OFFSET
) { \ | |
| GParamSpec *pspec; \ | | GParamSpec *pspec; \ | |
| \ | | \ | |
| pspec = g_param_spec_pointer( (NAME), (LONG), (DESC), \ | | pspec = g_param_spec_pointer( (NAME), (LONG), (DESC), \ | |
|
| G_PARAM_READWRITE ); \ | | (GParamFlags) (G_PARAM_READWRITE) ); \ | |
| g_object_class_install_property( gobject_class, \ | | g_object_class_install_property( gobject_class, \ | |
| _vips__argument_id++, pspec ); \ | | _vips__argument_id++, pspec ); \ | |
| vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | | vips_object_class_install_argument( VIPS_OBJECT_CLASS( CLASS ), \ | |
|
| pspec, (FLAGS), (PRIORITY), (OFFSET) ); \ | | pspec, (VipsArgumentFlags) (FLAGS), (PRIORITY), (OFFSET) );
\ | |
| } | | } | |
| | | | |
| /* Keep one of these for every argument. | | /* Keep one of these for every argument. | |
| */ | | */ | |
| typedef struct _VipsArgument { | | typedef struct _VipsArgument { | |
| GParamSpec *pspec; /* pspec for this argument */ | | GParamSpec *pspec; /* pspec for this argument */ | |
| | | | |
| /* More stuff, see below */ | | /* More stuff, see below */ | |
| } VipsArgument; | | } VipsArgument; | |
| | | | |
| | | | |
| skipping to change at line 298 | | skipping to change at line 299 | |
| * "invalidate" out. If we go, we need to disconnect. | | * "invalidate" out. If we go, we need to disconnect. | |
| */ | | */ | |
| gulong invalidate_id; | | gulong invalidate_id; | |
| } VipsArgumentInstance; | | } VipsArgumentInstance; | |
| | | | |
| /* Need to look up our VipsArgument structs from a pspec. Just hash the | | /* Need to look up our VipsArgument structs from a pspec. Just hash the | |
| * pointer (ie. we assume pspecs are never shared, is this correct?) | | * pointer (ie. we assume pspecs are never shared, is this correct?) | |
| */ | | */ | |
| typedef GHashTable VipsArgumentTable; | | typedef GHashTable VipsArgumentTable; | |
| | | | |
|
| VipsArgumentInstance *vips__argument_get_instance( VipsArgumentClass *, | | VipsArgumentInstance *vips__argument_get_instance( | |
| VipsObject * ); | | VipsArgumentClass *argument_class, | |
| VipsArgument *vips__argument_table_lookup( VipsArgumentTable *, | | VipsObject *object ); | |
| GParamSpec * ); | | VipsArgument *vips__argument_table_lookup( VipsArgumentTable *argument_clas | |
| | | s, | |
| | | GParamSpec *pspec ); | |
| void vips__object_set_member( VipsObject *object, GParamSpec *pspec, | | void vips__object_set_member( VipsObject *object, GParamSpec *pspec, | |
| GObject **member, GObject *argument ); | | GObject **member, GObject *argument ); | |
|
| typedef void *(*VipsArgumentMapFn)( VipsObject *, GParamSpec *, | | typedef void *(*VipsArgumentMapFn)( VipsObject *object, GParamSpec *pspec, | |
| VipsArgumentClass *, VipsArgumentInstance *, void *a, void *b ); | | VipsArgumentClass *argument_class, | |
| | | VipsArgumentInstance *argument_instance, void *a, void *b ); | |
| void *vips_argument_map( VipsObject *object, | | void *vips_argument_map( VipsObject *object, | |
| VipsArgumentMapFn fn, void *a, void *b ); | | VipsArgumentMapFn fn, void *a, void *b ); | |
|
| typedef void *(*VipsArgumentClassMapFn)( VipsObjectClass *, GParamSpec *, | | typedef void *(*VipsArgumentClassMapFn)( VipsObjectClass *object_class, | |
| VipsArgumentClass *, void *a, void *b ); | | GParamSpec *pspec, | |
| | | VipsArgumentClass *argument_class, void *a, void *b ); | |
| void *vips_argument_class_map( VipsObjectClass *object_class, | | void *vips_argument_class_map( VipsObjectClass *object_class, | |
| VipsArgumentClassMapFn fn, void *a, void *b ); | | VipsArgumentClassMapFn fn, void *a, void *b ); | |
| gboolean vips_argument_class_needsstring( VipsArgumentClass *argument_class
); | | gboolean vips_argument_class_needsstring( VipsArgumentClass *argument_class
); | |
| int vips_object_get_argument( VipsObject *object, const char *name, | | int vips_object_get_argument( VipsObject *object, const char *name, | |
| GParamSpec **pspec, | | GParamSpec **pspec, | |
| VipsArgumentClass **argument_class, | | VipsArgumentClass **argument_class, | |
| VipsArgumentInstance **argument_instance ); | | VipsArgumentInstance **argument_instance ); | |
| gboolean vips_object_argument_isset( VipsObject *object, const char *name )
; | | gboolean vips_object_argument_isset( VipsObject *object, const char *name )
; | |
| VipsArgumentFlags vips_object_get_argument_flags( VipsObject *object, | | VipsArgumentFlags vips_object_get_argument_flags( VipsObject *object, | |
| const char *name ); | | const char *name ); | |
| | | | |
| skipping to change at line 460 | | skipping to change at line 464 | |
| */ | | */ | |
| int (*build)( VipsObject *object ); | | int (*build)( VipsObject *object ); | |
| | | | |
| /* Just after build ... the object is fully ready for work. | | /* Just after build ... the object is fully ready for work. | |
| */ | | */ | |
| int (*postbuild)( VipsObject *object ); | | int (*postbuild)( VipsObject *object ); | |
| | | | |
| /* Try to print something about the class, handy for help displays. | | /* Try to print something about the class, handy for help displays. | |
| * Keep to one line. | | * Keep to one line. | |
| */ | | */ | |
|
| void (*summary_class)( struct _VipsObjectClass *, VipsBuf * ); | | void (*summary_class)( struct _VipsObjectClass *cls, VipsBuf *buf ); | |
| | | | |
| /* Try to print a one-line summary for the object, the user can see | | /* Try to print a one-line summary for the object, the user can see | |
| * this output via things like "header fred.tif", --vips-cache-trace
, | | * this output via things like "header fred.tif", --vips-cache-trace
, | |
| * etc. | | * etc. | |
| */ | | */ | |
|
| void (*summary)( VipsObject *, VipsBuf * ); | | void (*summary)( VipsObject *object, VipsBuf *buf ); | |
| | | | |
| /* Try to print everything about the object, handy for debugging. | | /* Try to print everything about the object, handy for debugging. | |
| */ | | */ | |
|
| void (*dump)( VipsObject *, VipsBuf * ); | | void (*dump)( VipsObject *object, VipsBuf *buf ); | |
| | | | |
| /* Sanity-check the object. Print messages and stuff. | | /* Sanity-check the object. Print messages and stuff. | |
| * Handy for debugging. | | * Handy for debugging. | |
| */ | | */ | |
|
| void (*sanity)( VipsObject *, VipsBuf * ); | | void (*sanity)( VipsObject *object, VipsBuf *buf ); | |
| | | | |
| /* Rewind. Save and restore any stuff that needs to survive a | | /* Rewind. Save and restore any stuff that needs to survive a | |
| * dispose(). | | * dispose(). | |
| */ | | */ | |
|
| void (*rewind)( VipsObject * ); | | void (*rewind)( VipsObject *object ); | |
| | | | |
| /* Just before close, everything is still alive. | | /* Just before close, everything is still alive. | |
| */ | | */ | |
|
| void (*preclose)( VipsObject * ); | | void (*preclose)( VipsObject *object ); | |
| | | | |
| /* Close, time to free stuff. | | /* Close, time to free stuff. | |
| */ | | */ | |
|
| void (*close)( VipsObject * ); | | void (*close)( VipsObject *object ); | |
| | | | |
| /* Post-close, everything is dead, except the VipsObject pointer. | | /* Post-close, everything is dead, except the VipsObject pointer. | |
| * Useful for eg. deleting the file associated with a temp image. | | * Useful for eg. deleting the file associated with a temp image. | |
| */ | | */ | |
|
| void (*postclose)( VipsObject * ); | | void (*postclose)( VipsObject *object ); | |
| | | | |
| /* The CLI interface. Implement these four to get CLI input and outp
ut | | /* The CLI interface. Implement these four to get CLI input and outp
ut | |
| * for your object. | | * for your object. | |
| */ | | */ | |
| | | | |
| /* Given a command-line arg (eg. a filename), make an instance of th
e | | /* Given a command-line arg (eg. a filename), make an instance of th
e | |
| * object. Just do the g_object_new(), don't call _build(). | | * object. Just do the g_object_new(), don't call _build(). | |
| * | | * | |
| * Don't call this directly, see vips_object_new_from_string(). | | * Don't call this directly, see vips_object_new_from_string(). | |
| */ | | */ | |
| VipsObject *(*new_from_string)( const char *string ); | | VipsObject *(*new_from_string)( const char *string ); | |
| | | | |
| /* The inverse of ^^. Given an object, output what ->new_from_string
() | | /* The inverse of ^^. Given an object, output what ->new_from_string
() | |
| * would have been given to make that object. | | * would have been given to make that object. | |
| */ | | */ | |
|
| void (*to_string)( VipsObject *, VipsBuf * ); | | void (*to_string)( VipsObject *object, VipsBuf *buf ); | |
| | | | |
| /* Does this output arg need an arg from the command line? Image | | /* Does this output arg need an arg from the command line? Image | |
| * output, for example, needs a filename to write to. | | * output, for example, needs a filename to write to. | |
| */ | | */ | |
| gboolean output_needs_arg; | | gboolean output_needs_arg; | |
| | | | |
| /* Write the object to the string. Return 0 for success, or -1 on | | /* Write the object to the string. Return 0 for success, or -1 on | |
| * error, setting vips_error(). string is NULL if output_needs_arg() | | * error, setting vips_error(). string is NULL if output_needs_arg() | |
| * was FALSE. | | * was FALSE. | |
| */ | | */ | |
| | | | |
| skipping to change at line 585 | | skipping to change at line 589 | |
| | | | |
| void vips_object_print_summary_class( VipsObjectClass *klass ); | | void vips_object_print_summary_class( VipsObjectClass *klass ); | |
| void vips_object_print_summary( VipsObject *object ); | | void vips_object_print_summary( VipsObject *object ); | |
| void vips_object_print_dump( VipsObject *object ); | | void vips_object_print_dump( VipsObject *object ); | |
| void vips_object_print_name( VipsObject *object ); | | void vips_object_print_name( VipsObject *object ); | |
| | | | |
| gboolean vips_object_sanity( VipsObject *object ); | | gboolean vips_object_sanity( VipsObject *object ); | |
| | | | |
| GType vips_object_get_type( void ); | | GType vips_object_get_type( void ); | |
| | | | |
|
| void vips_object_class_install_argument( VipsObjectClass *, GParamSpec *psp | | void vips_object_class_install_argument( VipsObjectClass *cls, | |
| ec, | | GParamSpec *pspec, VipsArgumentFlags flags, | |
| VipsArgumentFlags flags, int priority, guint offset ); | | int priority, guint offset ); | |
| int vips_object_set_argument_from_string( VipsObject *object, | | int vips_object_set_argument_from_string( VipsObject *object, | |
| const char *name, const char *value ); | | const char *name, const char *value ); | |
| gboolean vips_object_argument_needsstring( VipsObject *object, | | gboolean vips_object_argument_needsstring( VipsObject *object, | |
| const char *name ); | | const char *name ); | |
| int vips_object_get_argument_to_string( VipsObject *object, | | int vips_object_get_argument_to_string( VipsObject *object, | |
| const char *name, const char *arg ); | | const char *name, const char *arg ); | |
| int vips_object_set_required( VipsObject *object, const char *value ); | | int vips_object_set_required( VipsObject *object, const char *value ); | |
| | | | |
|
| typedef void *(*VipsObjectSetArguments)( VipsObject *, void *, void * ); | | typedef void *(*VipsObjectSetArguments)( VipsObject *object, void *a, void
*b ); | |
| VipsObject *vips_object_new( GType type, | | VipsObject *vips_object_new( GType type, | |
| VipsObjectSetArguments set, void *a, void *b ); | | VipsObjectSetArguments set, void *a, void *b ); | |
| | | | |
| int vips_object_set_valist( VipsObject *object, va_list ap ); | | int vips_object_set_valist( VipsObject *object, va_list ap ); | |
| int vips_object_set( VipsObject *object, ... ) | | int vips_object_set( VipsObject *object, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_object_set_from_string( VipsObject *object, const char *string ); | | int vips_object_set_from_string( VipsObject *object, const char *string ); | |
| | | | |
| VipsObject *vips_object_new_from_string( VipsObjectClass *object_class, | | VipsObject *vips_object_new_from_string( VipsObjectClass *object_class, | |
| const char *p ); | | const char *p ); | |
| void vips_object_to_string( VipsObject *object, VipsBuf *buf ); | | void vips_object_to_string( VipsObject *object, VipsBuf *buf ); | |
| | | | |
| void *vips_object_map( VipsSListMap2Fn fn, void *a, void *b ); | | void *vips_object_map( VipsSListMap2Fn fn, void *a, void *b ); | |
| | | | |
|
| typedef void *(*VipsTypeMapFn)( GType, void * ); | | typedef void *(*VipsTypeMapFn)( GType type, void *a ); | |
| typedef void *(*VipsTypeMap2Fn)( GType, void *, void * ); | | typedef void *(*VipsTypeMap2Fn)( GType type, void *a, void *b ); | |
| typedef void *(*VipsClassMapFn)( VipsObjectClass *, void * ); | | typedef void *(*VipsClassMapFn)( VipsObjectClass *cls, void *a ); | |
| void *vips_type_map( GType base, VipsTypeMap2Fn fn, void *a, void *b ); | | void *vips_type_map( GType base, VipsTypeMap2Fn fn, void *a, void *b ); | |
| void *vips_type_map_all( GType base, VipsTypeMapFn fn, void *a ); | | void *vips_type_map_all( GType base, VipsTypeMapFn fn, void *a ); | |
| int vips_type_depth( GType type ); | | int vips_type_depth( GType type ); | |
| GType vips_type_find( const char *basename, const char *nickname ); | | GType vips_type_find( const char *basename, const char *nickname ); | |
|
| | | const char *vips_nickname_find( GType type ); | |
| | | | |
|
| void *vips_class_map_all( GType base, VipsClassMapFn fn, void *a ); | | void *vips_class_map_all( GType type, VipsClassMapFn fn, void *a ); | |
| VipsObjectClass *vips_class_find( const char *basename, const char *nicknam
e ); | | VipsObjectClass *vips_class_find( const char *basename, const char *nicknam
e ); | |
| | | | |
| VipsObject **vips_object_local_array( VipsObject *parent, int n ); | | VipsObject **vips_object_local_array( VipsObject *parent, int n ); | |
| | | | |
| void vips_object_local_cb( VipsObject *vobject, GObject *gobject ); | | void vips_object_local_cb( VipsObject *vobject, GObject *gobject ); | |
| #define vips_object_local( V, G ) \ | | #define vips_object_local( V, G ) \ | |
| (g_signal_connect( V, "close", \ | | (g_signal_connect( V, "close", \ | |
| G_CALLBACK( vips_object_local_cb ), G ), 0) | | G_CALLBACK( vips_object_local_cb ), G ), 0) | |
| | | | |
| void vips_object_set_static( VipsObject *object, gboolean static_object ); | | void vips_object_set_static( VipsObject *object, gboolean static_object ); | |
| void vips_object_print_all( void ); | | void vips_object_print_all( void ); | |
| void vips_object_sanity_all( void ); | | void vips_object_sanity_all( void ); | |
| | | | |
| void vips_object_rewind( VipsObject *object ); | | void vips_object_rewind( VipsObject *object ); | |
| | | | |
| void vips_object_unref_outputs( VipsObject *object ); | | void vips_object_unref_outputs( VipsObject *object ); | |
| | | | |
|
| | | const char *vips_object_get_description( VipsObject *object ); | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif /*__cplusplus*/ | | #endif /*__cplusplus*/ | |
| | | | |
| #endif /*VIPS_OBJECT_H*/ | | #endif /*VIPS_OBJECT_H*/ | |
| | | | |
End of changes. 41 change blocks. |
| 48 lines changed or deleted | | 56 lines changed or added | |
|
| type.h | | type.h | |
| | | | |
| skipping to change at line 55 | | skipping to change at line 55 | |
| } VipsThing; | | } VipsThing; | |
| | | | |
| /** | | /** | |
| * VIPS_TYPE_THING: | | * VIPS_TYPE_THING: | |
| * | | * | |
| * The #GType for a #VipsThing. | | * The #GType for a #VipsThing. | |
| */ | | */ | |
| #define VIPS_TYPE_THING (vips_thing_get_type()) | | #define VIPS_TYPE_THING (vips_thing_get_type()) | |
| GType vips_thing_get_type( void ); | | GType vips_thing_get_type( void ); | |
| VipsThing *vips_thing_new( int i ); | | VipsThing *vips_thing_new( int i ); | |
|
| int vips_thing_get_i( VipsThing *thing ); | | | |
| | | | |
| /* A ref-counted area of memory. Can hold arrays of things as well. | | /* A ref-counted area of memory. Can hold arrays of things as well. | |
| */ | | */ | |
| typedef struct _VipsArea { | | typedef struct _VipsArea { | |
| void *data; | | void *data; | |
| size_t length; /* 0 if not known */ | | size_t length; /* 0 if not known */ | |
| | | | |
| /* If this area represents an array, the number of elements in the | | /* If this area represents an array, the number of elements in the | |
| * array. Equal to length / sizeof(element). | | * array. Equal to length / sizeof(element). | |
| */ | | */ | |
| | | | |
| skipping to change at line 96 | | skipping to change at line 95 | |
| * convenience. | | * convenience. | |
| */ | | */ | |
| GType type; | | GType type; | |
| size_t sizeof_type; | | size_t sizeof_type; | |
| } VipsArea; | | } VipsArea; | |
| | | | |
| VipsArea *vips_area_copy( VipsArea *area ); | | VipsArea *vips_area_copy( VipsArea *area ); | |
| void vips_area_unref( VipsArea *area ); | | void vips_area_unref( VipsArea *area ); | |
| | | | |
| VipsArea *vips_area_new( VipsCallbackFn free_fn, void *data ); | | VipsArea *vips_area_new( VipsCallbackFn free_fn, void *data ); | |
|
| VipsArea *vips_area_new_blob( VipsCallbackFn free_fn, | | | |
| void *data, size_t length ); | | | |
| VipsArea *vips_area_new_array( GType type, size_t sizeof_type, int n ); | | VipsArea *vips_area_new_array( GType type, size_t sizeof_type, int n ); | |
| VipsArea *vips_area_new_array_object( int n ); | | VipsArea *vips_area_new_array_object( int n ); | |
|
| | | | |
| void *vips_area_get_data( VipsArea *area, | | void *vips_area_get_data( VipsArea *area, | |
| size_t *length, int *n, GType *type, size_t *sizeof_type ); | | size_t *length, int *n, GType *type, size_t *sizeof_type ); | |
| | | | |
|
| | | #ifdef VIPS_DEBUG | |
| | | #define VIPS_ARRAY_ADDR( X, I ) \ | |
| | | (((I) >= 0 && (I) < VIPS_AREA( X )->n) ? \ | |
| | | (VIPS_AREA( X )->data + VIPS_AREA( X )->sizeof_type * (I)) : \ | |
| | | (fprintf( stderr, \ | |
| | | "VIPS_ARRAY_ADDR: index out of bounds, " \ | |
| | | "file \"%s\", line %d\n" \ | |
| | | "(index %d should have been within [0,%d])\n", \ | |
| | | __FILE__, __LINE__, \ | |
| | | (I), VIPS_AREA( X )->n ), NULL )) | |
| | | #else /*!VIPS_DEBUG*/ | |
| | | #define VIPS_ARRAY_ADDR( X, I ) \ | |
| | | (VIPS_AREA( X )->data + VIPS_AREA( X )->sizeof_type * (I)) | |
| | | #endif /*VIPS_DEBUG*/ | |
| | | | |
| /** | | /** | |
| * VIPS_TYPE_AREA: | | * VIPS_TYPE_AREA: | |
| * | | * | |
| * The #GType for a #VipsArea. | | * The #GType for a #VipsArea. | |
| */ | | */ | |
| #define VIPS_TYPE_AREA (vips_area_get_type()) | | #define VIPS_TYPE_AREA (vips_area_get_type()) | |
|
| | | #define VIPS_AREA( X ) ((VipsArea *) (X)) | |
| GType vips_area_get_type( void ); | | GType vips_area_get_type( void ); | |
| | | | |
| /** | | /** | |
| * VIPS_TYPE_SAVE_STRING: | | * VIPS_TYPE_SAVE_STRING: | |
| * | | * | |
| * The #GType for a #VipsSaveString. | | * The #GType for a #VipsSaveString. | |
| */ | | */ | |
| #define VIPS_TYPE_SAVE_STRING (vips_save_string_get_type()) | | #define VIPS_TYPE_SAVE_STRING (vips_save_string_get_type()) | |
| GType vips_save_string_get_type( void ); | | GType vips_save_string_get_type( void ); | |
| | | | |
| | | | |
| skipping to change at line 134 | | skipping to change at line 146 | |
| */ | | */ | |
| #define VIPS_TYPE_REF_STRING (vips_ref_string_get_type()) | | #define VIPS_TYPE_REF_STRING (vips_ref_string_get_type()) | |
| GType vips_ref_string_get_type( void ); | | GType vips_ref_string_get_type( void ); | |
| | | | |
| /** | | /** | |
| * VIPS_TYPE_BLOB: | | * VIPS_TYPE_BLOB: | |
| * | | * | |
| * The %GType for a #VipsBlob. | | * The %GType for a #VipsBlob. | |
| */ | | */ | |
| #define VIPS_TYPE_BLOB (vips_blob_get_type()) | | #define VIPS_TYPE_BLOB (vips_blob_get_type()) | |
|
| | | | |
| | | typedef struct _VipsBlob { | |
| | | VipsArea area; | |
| | | } VipsBlob; | |
| | | | |
| | | VipsBlob *vips_blob_new( VipsCallbackFn free_fn, | |
| | | const void *data, size_t size ); | |
| | | const void *vips_blob_get( VipsBlob *blob, size_t *size ); | |
| GType vips_blob_get_type( void ); | | GType vips_blob_get_type( void ); | |
| | | | |
| /** | | /** | |
| * VIPS_TYPE_ARRAY_DOUBLE: | | * VIPS_TYPE_ARRAY_DOUBLE: | |
| * | | * | |
| * The #GType for a #VipsArrayDouble. | | * The #GType for a #VipsArrayDouble. | |
| */ | | */ | |
| #define VIPS_TYPE_ARRAY_DOUBLE (vips_array_double_get_type()) | | #define VIPS_TYPE_ARRAY_DOUBLE (vips_array_double_get_type()) | |
|
| typedef VipsArea VipsArrayDouble; | | | |
| | | typedef struct _VipsArrayDouble { | |
| | | VipsArea area; | |
| | | } VipsArrayDouble; | |
| | | | |
| VipsArrayDouble *vips_array_double_new( const double *array, int n ); | | VipsArrayDouble *vips_array_double_new( const double *array, int n ); | |
| VipsArrayDouble *vips_array_double_newv( int n, ... ); | | VipsArrayDouble *vips_array_double_newv( int n, ... ); | |
|
| | | double *vips_array_double_get( VipsArrayDouble *array, int *n ); | |
| GType vips_array_double_get_type( void ); | | GType vips_array_double_get_type( void ); | |
| | | | |
| /** | | /** | |
| * VIPS_TYPE_ARRAY_INT: | | * VIPS_TYPE_ARRAY_INT: | |
| * | | * | |
| * The #GType for a #VipsArrayInt. | | * The #GType for a #VipsArrayInt. | |
| */ | | */ | |
| #define VIPS_TYPE_ARRAY_INT (vips_array_int_get_type()) | | #define VIPS_TYPE_ARRAY_INT (vips_array_int_get_type()) | |
|
| typedef VipsArea VipsArrayInt; | | | |
| | | typedef struct _VipsArrayInt { | |
| | | VipsArea area; | |
| | | } VipsArrayInt; | |
| | | | |
| VipsArrayInt *vips_array_int_new( const int *array, int n ); | | VipsArrayInt *vips_array_int_new( const int *array, int n ); | |
| VipsArrayInt *vips_array_int_newv( int n, ... ); | | VipsArrayInt *vips_array_int_newv( int n, ... ); | |
|
| | | int *vips_array_int_get( VipsArrayInt *array, int *n ); | |
| GType vips_array_int_get_type( void ); | | GType vips_array_int_get_type( void ); | |
| | | | |
| /** | | /** | |
| * VIPS_TYPE_ARRAY_IMAGE: | | * VIPS_TYPE_ARRAY_IMAGE: | |
| * | | * | |
| * The #GType for a #VipsArrayImage. | | * The #GType for a #VipsArrayImage. | |
| */ | | */ | |
| #define VIPS_TYPE_ARRAY_IMAGE (vips_array_image_get_type()) | | #define VIPS_TYPE_ARRAY_IMAGE (vips_array_image_get_type()) | |
|
| typedef VipsArea VipsArrayImage; | | | |
| | | typedef struct _VipsArrayImage { | |
| | | VipsArea area; | |
| | | } VipsArrayImage; | |
| | | | |
| | | /* See image.h for vips_array_image_new() etc., they need to be declared af | |
| | | ter | |
| | | * VipsImage. | |
| | | */ | |
| GType vips_array_image_get_type( void ); | | GType vips_array_image_get_type( void ); | |
| | | | |
| void vips_value_set_area( GValue *value, VipsCallbackFn free_fn, void *data
); | | void vips_value_set_area( GValue *value, VipsCallbackFn free_fn, void *data
); | |
| void *vips_value_get_area( const GValue *value, size_t *length ); | | void *vips_value_get_area( const GValue *value, size_t *length ); | |
| | | | |
| const char *vips_value_get_save_string( const GValue *value ); | | const char *vips_value_get_save_string( const GValue *value ); | |
| void vips_value_set_save_string( GValue *value, const char *str ); | | void vips_value_set_save_string( GValue *value, const char *str ); | |
| void vips_value_set_save_stringf( GValue *value, const char *fmt, ... ) | | void vips_value_set_save_stringf( GValue *value, const char *fmt, ... ) | |
| __attribute__((format(printf, 2, 3))); | | __attribute__((format(printf, 2, 3))); | |
| | | | |
| const char *vips_value_get_ref_string( const GValue *value, size_t *length
); | | const char *vips_value_get_ref_string( const GValue *value, size_t *length
); | |
|
| int vips_value_set_ref_string( GValue *value, const char *str ); | | void vips_value_set_ref_string( GValue *value, const char *str ); | |
| | | | |
| void *vips_value_get_blob( const GValue *value, size_t *length ); | | void *vips_value_get_blob( const GValue *value, size_t *length ); | |
| void vips_value_set_blob( GValue *value, | | void vips_value_set_blob( GValue *value, | |
| VipsCallbackFn free_fn, void *data, size_t length ); | | VipsCallbackFn free_fn, void *data, size_t length ); | |
| | | | |
| void vips_value_set_array( GValue *value, | | void vips_value_set_array( GValue *value, | |
| int n, GType type, size_t sizeof_type ); | | int n, GType type, size_t sizeof_type ); | |
| void *vips_value_get_array( const GValue *value, | | void *vips_value_get_array( const GValue *value, | |
| int *n, GType *type, size_t *sizeof_type ); | | int *n, GType *type, size_t *sizeof_type ); | |
| | | | |
| double *vips_value_get_array_double( const GValue *value, int *n ); | | double *vips_value_get_array_double( const GValue *value, int *n ); | |
|
| int vips_value_set_array_double( GValue *value, const double *array, int n
); | | void vips_value_set_array_double( GValue *value, const double *array, int n
); | |
| | | | |
| int *vips_value_get_array_int( const GValue *value, int *n ); | | int *vips_value_get_array_int( const GValue *value, int *n ); | |
|
| int vips_value_set_array_int( GValue *value, const int *array, int n ); | | void vips_value_set_array_int( GValue *value, const int *array, int n ); | |
| | | | |
| GObject **vips_value_get_array_object( const GValue *value, int *n ); | | GObject **vips_value_get_array_object( const GValue *value, int *n ); | |
|
| int vips_value_set_array_object( GValue *value, int n ); | | void vips_value_set_array_object( GValue *value, int n ); | |
| | | | |
|
| /* See also image.h, that has vips_value_get_array_image() and | | /* See also image.h, that has vips_array_image_get(), vips_array_image_new( | |
| * vips_value_set_array_image(). They need to be declared after VipsImage. | | ), | |
| | | * vips_value_get_array_image() and vips_value_set_array_image(). They need | |
| | | * to be declared after VipsImage. | |
| */ | | */ | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif /*__cplusplus*/ | | #endif /*__cplusplus*/ | |
| | | | |
| #endif /*VIPS_TYPE_H*/ | | #endif /*VIPS_TYPE_H*/ | |
| | | | |
End of changes. 16 change blocks. |
| 13 lines changed or deleted | | 53 lines changed or added | |
|
| vips7compat.h | | vips7compat.h | |
| | | | |
| skipping to change at line 217 | | skipping to change at line 217 | |
| #define im_guess_prefix vips_guess_prefix | | #define im_guess_prefix vips_guess_prefix | |
| #define im_guess_libdir vips_guess_libdir | | #define im_guess_libdir vips_guess_libdir | |
| #define im__global_lock vips__global_lock | | #define im__global_lock vips__global_lock | |
| | | | |
| int im_cp_desc(IMAGE *out, IMAGE *in ); | | int im_cp_desc(IMAGE *out, IMAGE *in ); | |
| int im_cp_descv (IMAGE * im, ...); | | int im_cp_descv (IMAGE * im, ...); | |
| #define im_cp_desc_array(I, A) vips__image_copy_fields_array(I, A) | | #define im_cp_desc_array(I, A) vips__image_copy_fields_array(I, A) | |
| int im_demand_hint (IMAGE * im, VipsDemandStyle hint, ...); | | int im_demand_hint (IMAGE * im, VipsDemandStyle hint, ...); | |
| #define im_demand_hint_array( A, B, C ) (vips__demand_hint_array( A, B, C )
, 0) | | #define im_demand_hint_array( A, B, C ) (vips__demand_hint_array( A, B, C )
, 0) | |
| | | | |
|
| #define im_image vips_image_new_from_memory | | #define im_image(P, W, H, B, F) \ | |
| | | vips_image_new_from_memory((P), 0, (W), (H), (B), (F)) | |
| | | | |
| #define im_binfile vips_image_new_from_file_raw | | #define im_binfile vips_image_new_from_file_raw | |
| #define im__open_temp vips_image_new_temp_file | | #define im__open_temp vips_image_new_temp_file | |
| #define im__test_kill( I ) (vips_image_get_kill( I )) | | #define im__test_kill( I ) (vips_image_get_kill( I )) | |
| #define im__start_eval( I ) (vips_image_preeval( I ), vips_image_get_kill(
I )) | | #define im__start_eval( I ) (vips_image_preeval( I ), vips_image_get_kill(
I )) | |
| #define im__handle_eval( I, W, H ) \ | | #define im__handle_eval( I, W, H ) \ | |
| (vips_image_eval( I, W, H ), vips_image_get_kill( I )) | | (vips_image_eval( I, W, H ), vips_image_get_kill( I )) | |
| #define im__end_eval vips_image_posteval | | #define im__end_eval vips_image_posteval | |
| #define im_invalidate vips_image_invalidate_all | | #define im_invalidate vips_image_invalidate_all | |
| #define im_isfile vips_image_isfile | | #define im_isfile vips_image_isfile | |
| #define im_printdesc( I ) vips_object_print_dump( VIPS_OBJECT( I ) ) | | #define im_printdesc( I ) vips_object_print_dump( VIPS_OBJECT( I ) ) | |
| | | | |
| skipping to change at line 269 | | skipping to change at line 271 | |
| | | | |
| #define im_image_sanity( I ) (!vips_object_sanity( VIPS_OBJECT( I ) )) | | #define im_image_sanity( I ) (!vips_object_sanity( VIPS_OBJECT( I ) )) | |
| #define im_image_sanity_all vips_object_sanity_all | | #define im_image_sanity_all vips_object_sanity_all | |
| #define im__print_all vips_object_print_all | | #define im__print_all vips_object_print_all | |
| | | | |
| /* Compat functions. | | /* Compat functions. | |
| */ | | */ | |
| | | | |
| int im_init_world( const char *argv0 ); | | int im_init_world( const char *argv0 ); | |
| | | | |
|
| /* We used to have this in lowercase. | | | |
| */ | | | |
| #define vips_init(X) VIPS_INIT(X) | | | |
| | | | |
| VipsImage *im_open( const char *filename, const char *mode ); | | VipsImage *im_open( const char *filename, const char *mode ); | |
| | | | |
| VipsImage *im_open_local( VipsImage *parent, | | VipsImage *im_open_local( VipsImage *parent, | |
| const char *filename, const char *mode ); | | const char *filename, const char *mode ); | |
| int im_open_local_array( VipsImage *parent, | | int im_open_local_array( VipsImage *parent, | |
| VipsImage **images, int n, const char *filename, const char *mode ); | | VipsImage **images, int n, const char *filename, const char *mode ); | |
| | | | |
| #define im_callback_fn VipsCallbackFn | | #define im_callback_fn VipsCallbackFn | |
| | | | |
| int im_add_callback( VipsImage *im, | | int im_add_callback( VipsImage *im, | |
| | | | |
| skipping to change at line 449 | | skipping to change at line 447 | |
| #define im_check_imask vips_check_imask | | #define im_check_imask vips_check_imask | |
| #define im_check_dmask vips_check_dmask | | #define im_check_dmask vips_check_dmask | |
| | | | |
| #define vips_bandfmt_isint vips_band_format_isint | | #define vips_bandfmt_isint vips_band_format_isint | |
| #define vips_bandfmt_isuint vips_band_format_isuint | | #define vips_bandfmt_isuint vips_band_format_isuint | |
| #define vips_bandfmt_isfloat vips_band_format_isfloat | | #define vips_bandfmt_isfloat vips_band_format_isfloat | |
| #define vips_bandfmt_iscomplex vips_band_format_iscomplex | | #define vips_bandfmt_iscomplex vips_band_format_iscomplex | |
| | | | |
| #define im__change_suffix vips__change_suffix | | #define im__change_suffix vips__change_suffix | |
| | | | |
|
| int vips_check_coding_labq( const char *domain, VipsImage *im ); | | | |
| int vips_check_coding_rad( const char *domain, VipsImage *im ); | | | |
| int vips_check_bands_3ormore( const char *domain, VipsImage *im ); | | | |
| | | | |
| /* Buffer processing. | | /* Buffer processing. | |
| */ | | */ | |
| typedef void (*im_wrapone_fn)( void *in, void *out, int width, | | typedef void (*im_wrapone_fn)( void *in, void *out, int width, | |
| void *a, void *b ); | | void *a, void *b ); | |
| int im_wrapone( VipsImage *in, VipsImage *out, | | int im_wrapone( VipsImage *in, VipsImage *out, | |
| im_wrapone_fn fn, void *a, void *b ); | | im_wrapone_fn fn, void *a, void *b ); | |
| | | | |
| typedef void (*im_wraptwo_fn)( void *in1, void *in2, void *out, | | typedef void (*im_wraptwo_fn)( void *in1, void *in2, void *out, | |
| int width, void *a, void *b ); | | int width, void *a, void *b ); | |
| int im_wraptwo( VipsImage *in1, VipsImage *in2, VipsImage *out, | | int im_wraptwo( VipsImage *in1, VipsImage *in2, VipsImage *out, | |
| | | | |
| skipping to change at line 1014 | | skipping to change at line 1008 | |
| int im_freqflt( VipsImage *in, VipsImage *mask, VipsImage *out ); | | int im_freqflt( VipsImage *in, VipsImage *mask, VipsImage *out ); | |
| int im_disp_ps( VipsImage *in, VipsImage *out ); | | int im_disp_ps( VipsImage *in, VipsImage *out ); | |
| int im_fractsurf( VipsImage *out, int size, double frd ); | | int im_fractsurf( VipsImage *out, int size, double frd ); | |
| int im_phasecor_fft( VipsImage *in1, VipsImage *in2, VipsImage *out ); | | int im_phasecor_fft( VipsImage *in1, VipsImage *in2, VipsImage *out ); | |
| | | | |
| int im_cntlines( VipsImage *im, double *nolines, int flag ); | | int im_cntlines( VipsImage *im, double *nolines, int flag ); | |
| int im_label_regions( VipsImage *test, VipsImage *mask, int *segments ); | | int im_label_regions( VipsImage *test, VipsImage *mask, int *segments ); | |
| int im_rank( VipsImage *in, VipsImage *out, int width, int height, int inde
x ); | | int im_rank( VipsImage *in, VipsImage *out, int width, int height, int inde
x ); | |
| int im_zerox( VipsImage *in, VipsImage *out, int sign ); | | int im_zerox( VipsImage *in, VipsImage *out, int sign ); | |
| | | | |
|
| | | int im_benchmarkn( VipsImage *in, VipsImage *out, int n ); | |
| | | int im_benchmark2( VipsImage *in, double *out ); | |
| | | | |
| int im_draw_circle( VipsImage *image, | | int im_draw_circle( VipsImage *image, | |
| int x, int y, int radius, gboolean fill, VipsPel *ink ); | | int x, int y, int radius, gboolean fill, VipsPel *ink ); | |
| | | | |
| int im_draw_mask( VipsImage *image, | | int im_draw_mask( VipsImage *image, | |
| VipsImage *mask_im, int x, int y, VipsPel *ink ); | | VipsImage *mask_im, int x, int y, VipsPel *ink ); | |
| int im_draw_image( VipsImage *image, VipsImage *sub, int x, int y ); | | int im_draw_image( VipsImage *image, VipsImage *sub, int x, int y ); | |
| int im_draw_rect( VipsImage *image, | | int im_draw_rect( VipsImage *image, | |
| int left, int top, int width, int height, int fill, VipsPel *ink ); | | int left, int top, int width, int height, int fill, VipsPel *ink ); | |
| | | | |
|
| | | typedef int (*VipsPlotFn)( VipsImage *image, int x, int y, | |
| | | void *a, void *b, void *c ); | |
| | | | |
| int im_draw_line_user( VipsImage *image, | | int im_draw_line_user( VipsImage *image, | |
| int x1, int y1, int x2, int y2, | | int x1, int y1, int x2, int y2, | |
| VipsPlotFn plot, void *a, void *b, void *c ); | | VipsPlotFn plot, void *a, void *b, void *c ); | |
| int im_draw_line( VipsImage *image, | | int im_draw_line( VipsImage *image, | |
| int x1, int y1, int x2, int y2, VipsPel *ink ); | | int x1, int y1, int x2, int y2, VipsPel *ink ); | |
| int im_lineset( VipsImage *in, VipsImage *out, VipsImage *mask, VipsImage *
ink, | | int im_lineset( VipsImage *in, VipsImage *out, VipsImage *mask, VipsImage *
ink, | |
| int n, int *x1v, int *y1v, int *x2v, int *y2v ); | | int n, int *x1v, int *y1v, int *x2v, int *y2v ); | |
| | | | |
|
| | | int im_insertset( VipsImage *main, VipsImage *sub, VipsImage *out, int n, i | |
| | | nt *x, int *y ); | |
| | | | |
| int im_draw_flood( VipsImage *image, int x, int y, VipsPel *ink, VipsRect *
dout ); | | int im_draw_flood( VipsImage *image, int x, int y, VipsPel *ink, VipsRect *
dout ); | |
| int im_draw_flood_blob( VipsImage *image, | | int im_draw_flood_blob( VipsImage *image, | |
| int x, int y, VipsPel *ink, VipsRect *dout ); | | int x, int y, VipsPel *ink, VipsRect *dout ); | |
| int im_draw_flood_other( VipsImage *image, VipsImage *test, | | int im_draw_flood_other( VipsImage *image, VipsImage *test, | |
| int x, int y, int serial, VipsRect *dout ); | | int x, int y, int serial, VipsRect *dout ); | |
| | | | |
| int im_draw_point( VipsImage *image, int x, int y, VipsPel *ink ); | | int im_draw_point( VipsImage *image, int x, int y, VipsPel *ink ); | |
| int im_read_point( VipsImage *image, int x, int y, VipsPel *ink ); | | int im_read_point( VipsImage *image, int x, int y, VipsPel *ink ); | |
| | | | |
| int im_draw_smudge( VipsImage *image, | | int im_draw_smudge( VipsImage *image, | |
| | | | |
| skipping to change at line 1106 | | skipping to change at line 1108 | |
| int balancetype, | | int balancetype, | |
| int mwidth ); | | int mwidth ); | |
| int im_tbmosaic1( VipsImage *ref, VipsImage *sec, VipsImage *out, | | int im_tbmosaic1( VipsImage *ref, VipsImage *sec, VipsImage *out, | |
| int bandno, | | int bandno, | |
| int xr1, int yr1, int xs1, int ys1, | | int xr1, int yr1, int xs1, int ys1, | |
| int xr2, int yr2, int xs2, int ys2, | | int xr2, int yr2, int xs2, int ys2, | |
| int hwindowsize, int hsearchsize, | | int hwindowsize, int hsearchsize, | |
| int balancetype, | | int balancetype, | |
| int mwidth ); | | int mwidth ); | |
| | | | |
|
| | | int im_correl( VipsImage *ref, VipsImage *sec, | |
| | | int xref, int yref, int xsec, int ysec, | |
| | | int hwindowsize, int hsearchsize, | |
| | | double *correlation, int *x, int *y ); | |
| | | | |
| | | int im_align_bands( VipsImage *in, VipsImage *out ); | |
| | | int im_maxpos_subpel( VipsImage *in, double *x, double *y ); | |
| | | | |
| /* These were public for a while, keep for compat. | | /* These were public for a while, keep for compat. | |
| */ | | */ | |
| int vips_foreign_load( const char *filename, VipsImage **out, ... ) | | int vips_foreign_load( const char *filename, VipsImage **out, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| int vips_foreign_save( VipsImage *in, const char *filename, ... ) | | int vips_foreign_save( VipsImage *in, const char *filename, ... ) | |
| __attribute__((sentinel)); | | __attribute__((sentinel)); | |
| | | | |
|
| | | VipsImage *vips__deprecated_open_read( const char *filename, gboolean seque | |
| | | ntial ); | |
| | | VipsImage *vips__deprecated_open_write( const char *filename ); | |
| | | | |
| | | void im__format_init( void ); | |
| | | | |
| | | void im__tiff_register( void ); | |
| | | void im__jpeg_register( void ); | |
| | | void im__png_register( void ); | |
| | | void im__csv_register( void ); | |
| | | void im__ppm_register( void ); | |
| | | void im__analyze_register( void ); | |
| | | void im__exr_register( void ); | |
| | | void im__magick_register( void ); | |
| | | | |
| | | int im__bandup( const char *domain, VipsImage *in, VipsImage *out, int n ); | |
| | | int im__bandalike_vec( const char *domain, VipsImage **in, VipsImage **out, | |
| | | int n ); | |
| | | int im__bandalike( const char *domain, | |
| | | VipsImage *in1, VipsImage *in2, VipsImage *out1, VipsImage *out2 ); | |
| | | int im__formatalike_vec( VipsImage **in, VipsImage **out, int n ); | |
| | | int im__formatalike( VipsImage *in1, VipsImage *in2, VipsImage *out1, VipsI | |
| | | mage *out2 ); | |
| | | int im__sizealike_vec( VipsImage **in, VipsImage **out, int n ); | |
| | | int im__sizealike( VipsImage *in1, VipsImage *in2, | |
| | | VipsImage *out1, VipsImage *out2 ); | |
| | | | |
| | | int im__arith_binary( const char *domain, | |
| | | VipsImage *in1, VipsImage *in2, VipsImage *out, | |
| | | int format_table[10], | |
| | | im_wrapmany_fn fn, void *b ); | |
| | | int im__arith_binary_const( const char *domain, | |
| | | VipsImage *in, VipsImage *out, | |
| | | int n, double *c, VipsBandFormat vfmt, | |
| | | int format_table[10], | |
| | | im_wrapone_fn fn1, im_wrapone_fn fnn ); | |
| | | int im__value( VipsImage *im, double *value ); | |
| | | typedef int (*im__wrapscan_fn)( void *p, int n, void *seq, void *a, void *b | |
| | | ); | |
| | | int im__wrapscan( VipsImage *in, | |
| | | VipsStartFn start, im__wrapscan_fn scan, VipsStopFn stop, | |
| | | void *a, void *b ); | |
| | | int im__colour_difference( const char *domain, | |
| | | VipsImage *in1, VipsImage *in2, VipsImage *out, | |
| | | im_wrapmany_fn buffer_fn, void *a, void *b ); | |
| | | int im__colour_unary( const char *domain, | |
| | | VipsImage *in, VipsImage *out, VipsInterpretation interpretation, | |
| | | im_wrapone_fn buffer_fn, void *a, void *b ); | |
| | | VipsImage **im__insert_base( const char *domain, | |
| | | VipsImage *in1, VipsImage *in2, VipsImage *out ); | |
| | | | |
| | | int im__find_lroverlap( VipsImage *ref_in, VipsImage *sec_in, VipsImage *ou | |
| | | t, | |
| | | int bandno_in, | |
| | | int xref, int yref, int xsec, int ysec, | |
| | | int halfcorrelation, int halfarea, | |
| | | int *dx0, int *dy0, | |
| | | double *scale1, double *angle1, double *dx1, double *dy1 ); | |
| | | int im__find_tboverlap( VipsImage *ref_in, VipsImage *sec_in, VipsImage *ou | |
| | | t, | |
| | | int bandno_in, | |
| | | int xref, int yref, int xsec, int ysec, | |
| | | int halfcorrelation, int halfarea, | |
| | | int *dx0, int *dy0, | |
| | | double *scale1, double *angle1, double *dx1, double *dy1 ); | |
| | | int im__find_best_contrast( VipsImage *image, | |
| | | int xpos, int ypos, int xsize, int ysize, | |
| | | int xarray[], int yarray[], int cont[], | |
| | | int nbest, int hcorsize ); | |
| | | int im__balance( VipsImage *ref, VipsImage *sec, VipsImage *out, | |
| | | VipsImage **ref_out, VipsImage **sec_out, int dx, int dy, int balanc | |
| | | etype ); | |
| | | | |
| | | void imb_LCh2Lab( float *, float *, int ); | |
| | | | |
| | | /* A colour temperature. | |
| | | */ | |
| | | typedef struct { | |
| | | double X0, Y0, Z0; | |
| | | } im_colour_temperature; | |
| | | | |
| | | void imb_XYZ2Lab( float *, float *, int, im_colour_temperature * ); | |
| | | void imb_LabS2Lab( signed short *, float *, int ); | |
| | | void imb_Lab2LabS( float *, signed short *, int n ); | |
| | | | |
| | | void vips__Lab2LabQ_vec( VipsPel *out, float *in, int width ); | |
| | | void vips__LabQ2Lab_vec( float *out, VipsPel *in, int width ); | |
| | | | |
| | | void im_copy_dmask_matrix( DOUBLEMASK *mask, double **matrix ); | |
| | | void im_copy_matrix_dmask( double **matrix, DOUBLEMASK *mask ); | |
| | | | |
| | | int *im_ivector(); | |
| | | float *im_fvector(); | |
| | | double *im_dvector(); | |
| | | void im_free_ivector(); | |
| | | void im_free_fvector(); | |
| | | void im_free_dvector(); | |
| | | | |
| | | int **im_imat_alloc(); | |
| | | float **im_fmat_alloc(); | |
| | | double **im_dmat_alloc(); | |
| | | void im_free_imat(); | |
| | | void im_free_fmat(); | |
| | | void im_free_dmat(); | |
| | | | |
| | | int im_invmat( double **, int ); | |
| | | | |
| | | int *im_offsets45( int size ); | |
| | | | |
| | | int im_conv_f_raw( VipsImage *in, VipsImage *out, DOUBLEMASK *mask ); | |
| | | int im_convsep_f_raw( VipsImage *in, VipsImage *out, DOUBLEMASK *mask ); | |
| | | | |
| | | int im_greyc_mask( VipsImage *in, VipsImage *out, VipsImage *mask, | |
| | | int iterations, float amplitude, float sharpness, float anisotropy, | |
| | | float alpha, float sigma, float dl, float da, float gauss_prec, | |
| | | int interpolation, int fast_approx ); | |
| | | | |
| | | int vips_check_imask( const char *domain, INTMASK *mask ); | |
| | | int vips_check_dmask( const char *domain, DOUBLEMASK *mask ); | |
| | | int vips_check_dmask_1d( const char *domain, DOUBLEMASK *mask ); | |
| | | | |
| | | GOptionGroup *vips_get_option_group( void ); | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif /*__cplusplus*/ | | #endif /*__cplusplus*/ | |
| | | | |
| #endif /*VIPS_VIPS7COMPAT_H*/ | | #endif /*VIPS_VIPS7COMPAT_H*/ | |
| | | | |
End of changes. 8 change blocks. |
| 9 lines changed or deleted | | 143 lines changed or added | |
|