summaryrefslogtreecommitdiff
path: root/obrender/image.c
diff options
context:
space:
mode:
Diffstat (limited to 'obrender/image.c')
-rw-r--r--obrender/image.c8
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)