added invaliidate callbacks
This commit is contained in:
parent
7a5fb7bd3d
commit
ffb051b43d
@ -28,6 +28,7 @@
|
|||||||
accidents on some platforms
|
accidents on some platforms
|
||||||
- configure prints a summary of optional packages found at the end
|
- configure prints a summary of optional packages found at the end
|
||||||
- im_lhisteq() checks for window too small
|
- im_lhisteq() checks for window too small
|
||||||
|
- added invalidate callbacks
|
||||||
|
|
||||||
25/1/08 started 7.14.0
|
25/1/08 started 7.14.0
|
||||||
- bump all version numbers for new stable
|
- bump all version numbers for new stable
|
||||||
|
@ -797,7 +797,8 @@ full details.
|
|||||||
\label{sec:callback}
|
\label{sec:callback}
|
||||||
|
|
||||||
VIPS lets you attach callbacks to image descriptors. These are functions
|
VIPS lets you attach callbacks to image descriptors. These are functions
|
||||||
you provide that VIPS will call when certain events occur.
|
you provide that VIPS will call when certain events occur. There are more
|
||||||
|
callbacks than are listed here: see the man page for full details.
|
||||||
|
|
||||||
\subsubsection{Close callbacks}
|
\subsubsection{Close callbacks}
|
||||||
|
|
||||||
|
@ -157,6 +157,7 @@ int im_add_preclose_callback( IMAGE *, im_callback_fn, void *, void * );
|
|||||||
int im_add_evalstart_callback( IMAGE *, im_callback_fn, void *, void * );
|
int im_add_evalstart_callback( IMAGE *, im_callback_fn, void *, void * );
|
||||||
int im_add_eval_callback( IMAGE *, im_callback_fn, void *, void * );
|
int im_add_eval_callback( IMAGE *, im_callback_fn, void *, void * );
|
||||||
int im_add_evalend_callback( IMAGE *, im_callback_fn, void *, void * );
|
int im_add_evalend_callback( IMAGE *, im_callback_fn, void *, void * );
|
||||||
|
int im_add_invalidate_callback( IMAGE *, im_callback_fn, void *, void * );
|
||||||
|
|
||||||
void error_exit( const char *, ... )
|
void error_exit( const char *, ... )
|
||||||
__attribute__((noreturn, format(printf, 1, 2)));
|
__attribute__((noreturn, format(printf, 1, 2)));
|
||||||
|
@ -38,6 +38,8 @@
|
|||||||
* 7/11/07
|
* 7/11/07
|
||||||
* - added preclose and evalstart callbacks
|
* - added preclose and evalstart callbacks
|
||||||
* - brought time struct in here
|
* - brought time struct in here
|
||||||
|
* 2/7/08
|
||||||
|
* - added invalidate callbacks
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -339,6 +341,7 @@ typedef struct im__IMAGE {
|
|||||||
*/
|
*/
|
||||||
GSList *evalstartfns; /* list of start eval callbacks */
|
GSList *evalstartfns; /* list of start eval callbacks */
|
||||||
GSList *preclosefns; /* list of pre-close callbacks */
|
GSList *preclosefns; /* list of pre-close callbacks */
|
||||||
|
GSList *invalidatefns; /* list of invalidate callbacks */
|
||||||
} IMAGE;
|
} IMAGE;
|
||||||
|
|
||||||
/* Only define if IM_ENABLE_DEPRECATED is set.
|
/* Only define if IM_ENABLE_DEPRECATED is set.
|
||||||
|
@ -563,6 +563,8 @@ im_invalidate_image( IMAGE *im )
|
|||||||
{
|
{
|
||||||
(void) im_slist_map2( im->regions,
|
(void) im_slist_map2( im->regions,
|
||||||
(VSListMap2Fn) im_invalidate_region, NULL, NULL );
|
(VSListMap2Fn) im_invalidate_region, NULL, NULL );
|
||||||
|
if( im__trigger_callbacks( im->invalidatefns ) )
|
||||||
|
return( im );
|
||||||
|
|
||||||
return( NULL );
|
return( NULL );
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@ man_MANS = \
|
|||||||
im_add_evalstart_callback.3 \
|
im_add_evalstart_callback.3 \
|
||||||
im_add_eval_callback.3 \
|
im_add_eval_callback.3 \
|
||||||
im_add_evalend_callback.3 \
|
im_add_evalend_callback.3 \
|
||||||
|
im_add_invalidate_callback.3 \
|
||||||
im_addgnoise.3 \
|
im_addgnoise.3 \
|
||||||
im_affine.3 \
|
im_affine.3 \
|
||||||
im_allocate_input_array.3 \
|
im_allocate_input_array.3 \
|
||||||
|
1
man/im_add_invalidate_callback.3
Normal file
1
man/im_add_invalidate_callback.3
Normal file
@ -0,0 +1 @@
|
|||||||
|
.so man3/im_malloc.3
|
@ -12,5 +12,8 @@ marks all caches related to the image as invalid and requring recalculation.
|
|||||||
It needs to be called if an image changes after being made: for example, after
|
It needs to be called if an image changes after being made: for example, after
|
||||||
a paint action, or perhaps after a new frame has arrived from a video source.
|
a paint action, or perhaps after a new frame has arrived from a video source.
|
||||||
|
|
||||||
|
Any invalidate callbacks registered on any of the affected images are
|
||||||
|
triggered.
|
||||||
|
|
||||||
.SH SEE\ ALSO
|
.SH SEE\ ALSO
|
||||||
im_prepare(3), im_region_buffer(3).
|
im_prepare(3), im_region_buffer(3), im_add_invalidate_callback(3).
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
.TH IM_AND 3 "30 October 1992"
|
.TH IM_AND 3 "30 October 1992"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
im_add_close_callback, im_add_eval_callback, im_malloc, im_free,
|
im_add_close_callback, im_add_eval_callback, im_malloc, im_free,
|
||||||
im_add_evalend_callback, im_add_evalstart_callback, im_add_preclose_callback \- add image callbacks
|
im_add_evalend_callback, im_add_evalstart_callback, im_add_preclose_callback,
|
||||||
|
im_add_invalidate_callback \- add image callbacks
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B #include <vips/vips.h>
|
.B #include <vips/vips.h>
|
||||||
|
|
||||||
@ -17,6 +18,8 @@ int im_add_eval_callback( IMAGE *, im_callback_fn, void *, void * );
|
|||||||
|
|
||||||
int im_add_evalend_callback( IMAGE *, im_callback_fn, void *, void * );
|
int im_add_evalend_callback( IMAGE *, im_callback_fn, void *, void * );
|
||||||
|
|
||||||
|
int im_add_invalidate_callback( IMAGE *, im_callback_fn, void *, void * );
|
||||||
|
|
||||||
void *im_malloc( IMAGE *, size_t );
|
void *im_malloc( IMAGE *, size_t );
|
||||||
|
|
||||||
int im_free( void * );
|
int im_free( void * );
|
||||||
@ -136,6 +139,10 @@ has finished evaluating the image. If you want to output some diagnostics
|
|||||||
from your function (an overflow count, for example), this is the callback to
|
from your function (an overflow count, for example), this is the callback to
|
||||||
use. Again, this can be called many times.
|
use. Again, this can be called many times.
|
||||||
|
|
||||||
|
.B im_add_invalidate_callback(3)
|
||||||
|
adds a callback which will be triggered when VIPS invalidates the cache on an
|
||||||
|
image. This is useful for removing images from other, higher-level caches.
|
||||||
|
|
||||||
.SH RETURN VALUE
|
.SH RETURN VALUE
|
||||||
All functions return 0 on success and non-zero on error.
|
All functions return 0 on success and non-zero on error.
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
|
Loading…
Reference in New Issue
Block a user