diff options
Diffstat (limited to 'obrender/image.c')
| -rw-r--r-- | obrender/image.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/obrender/image.c b/obrender/image.c index 924504fd..c65cd2a5 100644 --- a/obrender/image.c +++ b/obrender/image.c @@ -325,6 +325,12 @@ RrImage* RrImageNew(RrImageCache *cache) return self; } +/*! Set function that will be called just before RrImage is destroyed. */ +void RrImageSetDestroyFunc(RrImage *image, RrImageDestroyFunc func) +{ + image->destroy_func = func; +} + void RrImageRef(RrImage *self) { ++self->ref; @@ -339,6 +345,8 @@ void RrImageUnref(RrImage *self) "Image 0x%lx", (gulong)self); #endif */ + if (self->destroy_func) + self->destroy_func(self); while (self->n_original > 0) RemovePicture(self, &self->original, 0, &self->n_original); while (self->n_resized > 0) |
